added favicon - refactor namespace

This commit is contained in:
Frede Hundewadt 2022-04-30 10:06:59 +02:00
parent 6724c2b6b7
commit f8d9058cdf
17 changed files with 124 additions and 21 deletions

View file

@ -22,7 +22,7 @@
@if (_dtoNgCrmCompany != null)
{
<h2>@_poDraft.Name</h2>
<EditForm EditContext="_createActivity" OnValidSubmit="CreateActivity">
<EditForm EditContext="_createActivity" OnValidSubmit="CreateCanvas">
<DataAnnotationsValidator/>
<div class="accordion-flush" id="crmActivity">
@ -41,7 +41,7 @@
<div class="row mb-1">
<label for="activityDate" class="col-sm-2 col-md-2 col-form-label">Aktivitet</label>
<div class="col-sm-3 col-md-3">
<select id="activityType" class="form-select" @bind-Value="@_poDraft.ActivityType" @bind-Value:event="oninput" @onchange="CheckActivity">
<select id="activityType" class="form-select" @bind-Value="@_poDraft.ActivityTypeEnum" @bind-Value:event="oninput" @onchange="CheckActivity">
<option value="" selected>--type--</option>
<option value="caOnSite">Besøg</option>
<option value="caPhone">Telefon</option>
@ -327,12 +327,12 @@
</div>
</div>
<div class="row mt-2 mb-2">
<div class="row mt-2 mb-2" style="display:@(HideButtons ? "none" : "block")">
<div class="col">
<a class="btn btn-primary" href="/company/@_dtoNgCrmCompany.CompanyId">Tilbage</a>
</div>
<div class="col">
<button type="submit" class="btn btn-dark" disabled="@InvalidCanvas">Kanvas</button>
<button type="submit" class="btn btn-dark" @onclick="CreateCanvas" disabled="@InvalidCanvas">Kanvas</button>
</div>
<div class="col">
<button type="button" class="btn btn-warning" @onclick="CreateOffer" disabled="@InvalidActivity">Tilbud</button>

View file

@ -43,12 +43,13 @@ public partial class CrmActivityCreate : IDisposable
private List<NgSalesItemView> SalesItems { get; set; } = new();
// private MetaData _meta { get; set; } = new();
private Preferences _prefs { get; set; } = new();
private DtoNgSalesHead _poDraft { get; set; } = new();
private DtoNgSalesRepActivity _poDraft { get; set; } = new();
private DtoNgCrmCompany _dtoNgCrmCompany = new();
private CatalogPagingParams _paging = new();
private EditContext _createActivity { get; set; }
private bool _poFormInvalid { get; set; } = true;
private bool ShowItem { get; set; }
private bool HideButtons { get; set; }
private string Quantity = "1";
private string Price = "0";
private string Discount = "0";
@ -91,27 +92,37 @@ public partial class CrmActivityCreate : IDisposable
_poDraft.ZipCode = _dtoNgCrmCompany.ZipCode;
_poDraft.City = _dtoNgCrmCompany.City;
_poDraft.DlvName = "";
_poDraft.DlvAddress1 = "";
_poDraft.DlvAddress2 = "";
_poDraft.DlvZipCode = "";
_poDraft.DlvCity = "";
_poDraft.DlvName = _dtoNgCrmCompany.Name;
_poDraft.DlvAddress1 = _dtoNgCrmCompany.Address1;
_poDraft.DlvAddress2 = _dtoNgCrmCompany.Address2;
_poDraft.DlvZipCode = _dtoNgCrmCompany.ZipCode;
_poDraft.DlvCity = _dtoNgCrmCompany.City;
}
private async Task CreateCanvas()
{
HideButtons = true;
await CreateActivity();
// post to create canvas endpoint
}
private async Task CreateOffer()
{
HideButtons = true;
await CreateActivity();
// post to create offer endpoint
}
private async Task CreateOrder()
{
HideButtons = true;
await CreateActivity();
// post to create order endpoint
}
private async Task CreateActivity()
{
HideButtons = true;
// write work date to preference
await UserPrefs.SetWorkDate(_poDraft.ActivityDate);
var activityType = _poDraft.ActivityType switch
var activityType = _poDraft.ActivityTypeEnum switch
{
"caPhone" => "Tlf. ",
"caOnSite" => "Bsg. ",
@ -140,7 +151,7 @@ public partial class CrmActivityCreate : IDisposable
private void CheckActivity()
{
InvalidActivityType = string.IsNullOrWhiteSpace(_poDraft.ActivityType);
InvalidActivityType = string.IsNullOrWhiteSpace(_poDraft.ActivityTypeEnum);
Console.WriteLine($"invalidType => {InvalidActivityType}");
}
@ -229,7 +240,7 @@ public partial class CrmActivityCreate : IDisposable
if(!VatUtils.ValidateFormat(_dtoNgCrmCompany.CountryCode, _poDraft.VatNumber))
ToastService.ShowWarning("CVR / ORG nummer er ikke et gyldigt registreringsnummer");
}
if (string.IsNullOrEmpty(_poDraft.ActivityType))
if (string.IsNullOrEmpty(_poDraft.ActivityTypeEnum))
ToastService.ShowWarning("Aktivitet type kan ikke være tom");
_poFormInvalid = false;
_createActivity.OnFieldChanged -= HandleFieldChanged;

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -7,7 +7,7 @@
}
},
"apiConfig": {
"baseAddress": "https://api.innotec.dk",
"baseAddress": "https://staging.innotec.dk",
"tokenPath": "token",
"userInfo": "api/auth/userinfo",
"crmCompanies": "api/v2/crm/companies",

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="/mstile-150x150.png"/>
<TileColor>#da532c</TileColor>
</tile>
</msapplication>
</browserconfig>

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

View file

@ -4,6 +4,13 @@
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<title>Wonky Online</title>
<base href="/" />
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

View file

@ -0,0 +1,55 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="300.000000pt" height="300.000000pt" viewBox="0 0 300.000000 300.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.14, written by Peter Selinger 2001-2017
</metadata>
<g transform="translate(0.000000,300.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M1455 2813 c-261 -9 -414 -24 -538 -54 -207 -50 -208 -53 -148 -361
56 -286 73 -424 69 -578 -3 -120 -2 -130 15 -130 10 0 96 11 190 25 208 30
500 45 860 45 l268 0 -5 58 c-3 31 -11 219 -16 417 -17 557 -15 524 -33 542
-31 31 -338 47 -662 36z"/>
<path d="M1600 1723 c-204 -5 -437 -24 -599 -49 -91 -13 -167 -27 -169 -29 -3
-3 -11 -34 -17 -69 -12 -62 -12 -65 9 -70 41 -11 185 -6 402 14 331 31 438 51
690 130 86 27 173 53 193 56 103 20 -119 27 -509 17z"/>
<path d="M2088 1665 c-70 -19 -177 -50 -237 -69 -135 -44 -320 -81 -471 -96
-63 -6 -184 -17 -269 -25 -89 -9 -188 -13 -235 -9 -111 8 -216 39 -242 70 -30
36 -84 31 -98 -9 -16 -44 8 -77 86 -115 114 -55 204 -74 378 -79 l155 -5 460
93 c477 96 591 111 672 88 24 -6 53 -23 64 -37 l19 -25 50 51 c57 60 70 103
45 151 -21 42 -49 51 -158 50 -71 0 -121 -8 -219 -34z"/>
<path d="M738 1523 c7 -3 16 -2 19 1 4 3 -2 6 -13 5 -11 0 -14 -3 -6 -6z"/>
<path d="M2070 1474 c0 -29 39 -105 58 -116 40 -21 107 -103 120 -145 6 -21
14 -77 18 -123 5 -68 3 -93 -10 -125 -10 -22 -19 -59 -20 -82 -2 -28 -12 -53
-32 -78 -16 -20 -37 -46 -46 -58 -11 -14 -21 -57 -28 -122 -14 -127 -42 -246
-74 -318 -16 -37 -21 -59 -14 -63 5 -4 38 -9 73 -12 53 -4 71 -1 119 21 72 33
154 115 192 192 26 54 29 69 28 155 -1 110 -25 273 -60 413 -31 127 -55 196
-117 345 l-51 122 -78 0 c-43 0 -78 -3 -78 -6z"/>
<path d="M2272 1455 c11 -25 41 -34 53 -16 6 11 -32 41 -52 41 -10 0 -10 -6
-1 -25z"/>
<path d="M1879 1370 c-39 -7 -129 -44 -129 -54 0 -2 24 3 53 11 136 36 283
-34 354 -170 25 -46 28 -63 28 -147 0 -80 -4 -102 -23 -138 -35 -66 -88 -119
-150 -149 -47 -23 -70 -28 -132 -28 -62 0 -85 5 -132 28 -109 54 -169 146
-176 273 -5 93 5 133 52 202 l32 47 -60 -30 c-51 -25 -72 -30 -136 -30 -72 0
-79 2 -183 58 l-108 57 -130 0 c-143 0 -173 -9 -243 -71 -56 -48 -70 -100 -63
-227 4 -86 10 -116 27 -145 12 -20 19 -44 16 -54 -8 -25 -2 -32 84 -95 60 -45
87 -59 138 -68 34 -7 65 -10 69 -6 3 3 -5 6 -18 6 -41 0 -124 48 -169 96 -65
70 -85 123 -85 224 0 78 3 90 34 148 58 107 155 166 276 166 157 0 290 -121
311 -283 7 -53 7 -53 20 -28 35 66 88 39 144 -74 23 -44 59 -100 81 -124 67
-72 171 -105 275 -86 126 23 264 131 264 205 0 19 7 51 16 72 24 58 16 213
-15 276 -33 69 -97 112 -193 132 -43 9 -78 15 -80 15 -2 -1 -24 -5 -49 -9z"/>
<path d="M731 1264 c-77 -204 -111 -387 -111 -590 1 -236 29 -336 115 -412 74
-65 189 -91 298 -69 l37 8 -30 45 c-63 91 -130 274 -130 355 0 22 -13 37 -68
77 -86 64 -99 79 -105 122 -3 19 -12 55 -22 80 -11 30 -17 80 -18 150 -2 92 1
111 22 153 14 29 43 64 72 87 l48 38 -31 6 c-52 10 -56 8 -77 -50z"/>
<path d="M1765 1276 c-172 -79 -218 -309 -91 -453 108 -123 299 -125 408 -5
54 60 71 105 72 192 1 63 -3 84 -27 132 -67 136 -229 196 -362 134z"/>
<path d="M1004 1224 c-147 -52 -220 -237 -152 -385 96 -211 379 -229 495 -32
22 37 28 62 31 129 4 71 1 89 -20 136 -63 137 -214 202 -354 152z"/>
<path d="M1328 730 c-40 -42 -96 -75 -155 -90 l-38 -10 43 5 c59 7 111 35 155
84 32 36 43 52 35 51 -2 -1 -20 -18 -40 -40z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -0,0 +1,19 @@
{
"name": "",
"short_name": "",
"icons": [
{
"src": "/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/android-chrome-256x256.png",
"sizes": "256x256",
"type": "image/png"
}
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}

View file

@ -34,7 +34,7 @@ public class DtoNgCrmCompany
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")] public string Phone { get; set; } = "";
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")] public string Mobile { get; set; } = "";
[MaxLength(80, ErrorMessage = "Du kan højst bruge 80 tegn")] public string Email { get; set; } = "";
[MaxLength(30, ErrorMessage = "Du kan højst bruge 30 tegn")] public string Attention { get; set; } = "";
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")] public string Attention { get; set; } = "";
public string LastVisit { get; set; } = "";
public string NextVisit { get; set; } = "";
public int Interval { get; set; } = 8;

View file

@ -17,26 +17,28 @@ using System.ComponentModel.DataAnnotations;
namespace Wonky.Entity.DTO
{
public class DtoNgSalesHead
public class DtoNgSalesRepActivity
{
public string SalesHeadId { get; set; } = "";
public string CompanyId { get; set; } = "";
public string SalesRep { get; set; } = "";
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")] public string Account { get; set; } = "";
public string Account { get; set; } = "";
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")] public string VatNumber { get; set; } = "";
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")] public string Name { get; set; } = "";
[MaxLength(30, ErrorMessage = "Du kan højst bruge 30 tegn")] public string City { get; set; }= "";
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")] public string ZipCode { get; set; } = "";
[Required(ErrorMessage = "Vælg aktivitet")] public string ActivityType { get; set; } = "";
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")] public string OurRef { get; set; } = "";
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")] public string Address { get; set; } = "";
[MaxLength(50, ErrorMessage = "Du kan højst bruge 50 tegn")] public string Address2 { get; set; } = "";
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")] public string Phone { get; set; } = "";
[MaxLength(80, ErrorMessage = "Du kan højst bruge 80 tegn")] public string EMail { get; set; } = "";
[MaxLength(100, ErrorMessage = "Du kan højst bruge 100 tegn")] public string Attention { get; set; } = "";
// Form entries
public string SalesRep { get; set; } = "";
[Required(ErrorMessage = "Vælg aktivitet")] public string ActivityTypeEnum { get; set; } = "";
public string ActivityStatusEnum { get; set; } = "";
public bool CheckDate { get; set; }
public DateTime ActivityDate { get; set; }
[MaxLength(50, ErrorMessage = "Du kan højst bruge 50 tegn")] public string Demo { get; set; } = "";
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")] public string VatNumber { get; set; } = "";
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")] public string OurRef { get; set; } = "";
[MaxLength(20, ErrorMessage = "Du kan højst bruge 20 tegn")] public string ReferenceNumber { get; set; } = "";
[MaxLength(35, ErrorMessage = "Du kan højst bruge 35 tegn")] public string YourRef { get; set; } = "";
[MaxLength(255, ErrorMessage = "Du kan højst bruge 255 tegn")] public string OrderMessage { get; set; } = "";