15 Commits

Author SHA1 Message Date
3fd5410bf5 Aggiunta versione app a video 2025-11-14 12:40:17 +01:00
e338e7d253 Fix caricamenti in Modal Activity 2025-11-14 09:58:52 +01:00
d982aa9bf5 Finish v2.1.5(23) 2025-11-11 14:51:34 +01:00
39c34e7c7d Finish v2.1.5(23) 2025-11-11 14:51:33 +01:00
1f530bc130 -> v2.1.5 (23) 2025-11-11 14:51:25 +01:00
a4c2eee49d Valorizzato tipoAnag 2025-11-11 13:38:53 +01:00
70a34eef06 Finish v2.1.4(22) 2025-11-11 11:59:28 +01:00
c61ebe348c Finish v2.1.4(22) 2025-11-11 11:59:27 +01:00
e586279c6b -> v2.1.4 (22) 2025-11-11 11:59:22 +01:00
85e227a5cb Fix apple 2025-11-11 11:58:51 +01:00
71ce027fb8 Finish v2.1.4(21) 2025-11-11 11:32:26 +01:00
9318d7bd3f Finish v2.1.4(21) 2025-11-11 11:32:25 +01:00
3ae0a7f7d1 -> v2.1.4 (21) 2025-11-11 11:32:14 +01:00
2879008c20 Fix apple 2025-11-11 11:31:48 +01:00
0dfc0baa28 Finish v2.1.3(20) 2025-11-05 15:22:59 +01:00
11 changed files with 69 additions and 10 deletions

View File

@@ -0,0 +1,8 @@
using salesbook.Shared.Core.Interface.System;
namespace salesbook.Maui.Core.System;
public class GenericSystemService : IGenericSystemService
{
public string GetCurrentAppVersion() => AppInfo.VersionString;
}

View File

@@ -7,6 +7,7 @@ using MudBlazor.Services;
using MudExtensions.Services; using MudExtensions.Services;
using salesbook.Maui.Core.RestClient.IntegryApi; using salesbook.Maui.Core.RestClient.IntegryApi;
using salesbook.Maui.Core.Services; using salesbook.Maui.Core.Services;
using salesbook.Maui.Core.System;
using salesbook.Maui.Core.System.Network; using salesbook.Maui.Core.System.Network;
using salesbook.Maui.Core.System.Notification; using salesbook.Maui.Core.System.Notification;
using salesbook.Maui.Core.System.Notification.Push; using salesbook.Maui.Core.System.Notification.Push;
@@ -16,6 +17,7 @@ using salesbook.Shared.Core.Dto.PageState;
using salesbook.Shared.Core.Helpers; using salesbook.Shared.Core.Helpers;
using salesbook.Shared.Core.Interface; using salesbook.Shared.Core.Interface;
using salesbook.Shared.Core.Interface.IntegryApi; using salesbook.Shared.Core.Interface.IntegryApi;
using salesbook.Shared.Core.Interface.System;
using salesbook.Shared.Core.Interface.System.Network; using salesbook.Shared.Core.Interface.System.Network;
using salesbook.Shared.Core.Interface.System.Notification; using salesbook.Shared.Core.Interface.System.Notification;
using salesbook.Shared.Core.Messages.Activity.Copy; using salesbook.Shared.Core.Messages.Activity.Copy;
@@ -102,6 +104,7 @@ namespace salesbook.Maui
builder.Services.AddSingleton<IFormFactor, FormFactor>(); builder.Services.AddSingleton<IFormFactor, FormFactor>();
builder.Services.AddSingleton<IAttachedService, AttachedService>(); builder.Services.AddSingleton<IAttachedService, AttachedService>();
builder.Services.AddSingleton<INetworkService, NetworkService>(); builder.Services.AddSingleton<INetworkService, NetworkService>();
builder.Services.AddSingleton<IGenericSystemService, GenericSystemService>();
builder.Services.AddSingleton<LocalDbService>(); builder.Services.AddSingleton<LocalDbService>();
_ = typeof(System.Runtime.InteropServices.SafeHandle); _ = typeof(System.Runtime.InteropServices.SafeHandle);

View File

@@ -51,6 +51,9 @@
<key>NSPhotoLibraryAddUsageDescription</key> <key>NSPhotoLibraryAddUsageDescription</key>
<string>Permette all'app di salvare file o immagini nella tua libreria fotografica se necessario.</string> <string>Permette all'app di salvare file o immagini nella tua libreria fotografica se necessario.</string>
<key>NSBluetoothAlwaysUsageDescription</key>
<string>Alcune librerie di sistema potrebbero accedere al Bluetooth. Lapp non utilizza direttamente il Bluetooth.</string>
<key>UIBackgroundModes</key> <key>UIBackgroundModes</key>
<array> <array>
<string>remote-notification</string> <string>remote-notification</string>

View File

@@ -29,8 +29,8 @@
<ApplicationId>it.integry.salesbook</ApplicationId> <ApplicationId>it.integry.salesbook</ApplicationId>
<!-- Versions --> <!-- Versions -->
<ApplicationDisplayVersion>2.1.3</ApplicationDisplayVersion> <ApplicationDisplayVersion>2.1.5</ApplicationDisplayVersion>
<ApplicationVersion>20</ApplicationVersion> <ApplicationVersion>23</ApplicationVersion>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">14.2</SupportedOSPlatformVersion> <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'ios'">14.2</SupportedOSPlatformVersion>
<!--<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'"> <!--<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'maccatalyst'">
@@ -120,6 +120,7 @@
<PublishTrimmed>true</PublishTrimmed> <PublishTrimmed>true</PublishTrimmed>
<PublishAot>true</PublishAot> <PublishAot>true</PublishAot>
<MonoAotMode>Hybrid</MonoAotMode> <MonoAotMode>Hybrid</MonoAotMode>
<MtouchLink>None</MtouchLink>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View File

@@ -1,8 +1,10 @@
@page "/login" @page "/login"
@using salesbook.Shared.Components.Layout.Spinner @using salesbook.Shared.Components.Layout.Spinner
@using salesbook.Shared.Core.Interface.System
@using salesbook.Shared.Core.Services @using salesbook.Shared.Core.Services
@inject IUserAccountService UserAccountService @inject IUserAccountService UserAccountService
@inject AppAuthenticationStateProvider AuthenticationStateProvider @inject AppAuthenticationStateProvider AuthenticationStateProvider
@inject IGenericSystemService GenericSystemService
@if (Spinner) @if (Spinner)
{ {
@@ -34,7 +36,7 @@ else
</div> </div>
<div class="my-4 login-footer"> <div class="my-4 login-footer">
<span>Powered by</span> <span>@($"v{GenericSystemService.GetCurrentAppVersion()} | Powered by")</span>
<img src="_content/salesbook.Shared/images/logoIntegry.svg" class="img-fluid" alt="Integry"> <img src="_content/salesbook.Shared/images/logoIntegry.svg" class="img-fluid" alt="Integry">
</div> </div>
</div> </div>

View File

@@ -1,6 +1,7 @@
@page "/PersonalInfo" @page "/PersonalInfo"
@attribute [Authorize] @attribute [Authorize]
@using salesbook.Shared.Components.Layout @using salesbook.Shared.Components.Layout
@using salesbook.Shared.Components.SingleElements
@using salesbook.Shared.Core.Authorization.Enum @using salesbook.Shared.Core.Authorization.Enum
@using salesbook.Shared.Core.Interface @using salesbook.Shared.Core.Interface
@using salesbook.Shared.Core.Interface.System.Network @using salesbook.Shared.Core.Interface.System.Network
@@ -16,7 +17,8 @@
<div class="container content pb-safe-area"> <div class="container content pb-safe-area">
<div class="container-primary-info"> <div class="container-primary-info">
<div class="section-primary-info"> <div class="section-primary-info">
<MudAvatar Style="height: 70px; width: 70px; font-size: 2rem; font-weight: bold" Color="Color.Secondary"> <MudAvatar Style="height: 70px; width: 70px; font-size: 2rem; font-weight: bold"
Color="Color.Secondary">
@UtilityString.ExtractInitials(UserSession.User.Fullname) @UtilityString.ExtractInitials(UserSession.User.Fullname)
</MudAvatar> </MudAvatar>
@@ -24,7 +26,8 @@
<span class="info-nome">@UserSession.User.Fullname</span> <span class="info-nome">@UserSession.User.Fullname</span>
@if (UserSession.User.KeyGroup is not null) @if (UserSession.User.KeyGroup is not null)
{ {
<span class="info-section">@(((KeyGroupEnum)UserSession.User.KeyGroup).ConvertToHumanReadable())</span> <span
class="info-section">@(((KeyGroupEnum)UserSession.User.KeyGroup).ConvertToHumanReadable())</span>
} }
</div> </div>
</div> </div>
@@ -113,6 +116,8 @@
</MudButton> </MudButton>
</div> </div>
</div> </div>
<AppVersion/>
} }
@code { @code {

View File

@@ -1,12 +1,15 @@
@page "/sync" @page "/sync"
@page "/sync/{DateFilter}" @page "/sync/{DateFilter}"
@using salesbook.Shared.Components.Layout.Spinner @using salesbook.Shared.Components.Layout.Spinner
@using salesbook.Shared.Components.SingleElements
@using salesbook.Shared.Core.Interface @using salesbook.Shared.Core.Interface
@inject ISyncDbService syncDb @inject ISyncDbService syncDb
@inject IManageDataService manageData @inject IManageDataService manageData
<SyncSpinner Elements="@Elements"/> <SyncSpinner Elements="@Elements"/>
<AppVersion/>
@code { @code {
[Parameter] public string? DateFilter { get; set; } [Parameter] public string? DateFilter { get; set; }

View File

@@ -0,0 +1,6 @@
@using salesbook.Shared.Core.Interface.System
@inject IGenericSystemService GenericSystemService
<div class="app-version">
<span>@($"v{GenericSystemService.GetCurrentAppVersion()}")</span>
</div>

View File

@@ -0,0 +1,11 @@
.app-version{
width: 100%;
display: flex;
justify-content: center;
margin: 8px 0;
}
.app-version span{
font-size: smaller;
color: var(--mud-palette-gray-darker);
}

View File

@@ -214,7 +214,8 @@
@if (item.p.Type == AttachedDTO.TypeAttached.Position) @if (item.p.Type == AttachedDTO.TypeAttached.Position)
{ {
<MudChip T="string" Icon="@Icons.Material.Rounded.LocationOn" Color="Color.Success" <MudChip T="string" Icon="@Icons.Material.Rounded.LocationOn" Color="Color.Success"
OnClick="@(() => OpenPosition(item.p))" OnClose="@(() => OnRemoveAttached(item.index))"> OnClick="@(() => OpenPosition(item.p))"
OnClose="@(() => OnRemoveAttached(item.index))">
@item.p.Description @item.p.Description
</MudChip> </MudChip>
} }
@@ -234,7 +235,8 @@
{ {
foreach (var file in ActivityFileList) foreach (var file in ActivityFileList)
{ {
<MudChip T="string" OnClick="@(() => OpenAttached(file.Id, file.FileName))" OnClose="@(() => DeleteAttach(file))" Color="Color.Default"> <MudChip T="string" OnClick="@(() => OpenAttached(file.Id, file.FileName))"
OnClose="@(() => DeleteAttach(file))" Color="Color.Default">
@file.FileName @file.FileName
</MudChip> </MudChip>
} }
@@ -242,7 +244,7 @@
} }
else else
{ {
<MudProgressLinear Color="Color.Primary" Indeterminate="true" Class="my-7" /> <MudProgressLinear Color="Color.Primary" Indeterminate="true" Class="my-7"/>
} }
</div> </div>
@@ -453,12 +455,15 @@
{ {
IsLoading = true; IsLoading = true;
await InvokeAsync(StateHasChanged); await InvokeAsync(StateHasChanged);
SelectedComessa = ActivityModel.Commessa; SelectedComessa = ActivityModel.Commessa;
Users = await ManageData.GetTable<StbUser>(); Users = await ManageData.GetTable<StbUser>();
if (!ActivityModel.UserName.IsNullOrEmpty()) if (!ActivityModel.UserName.IsNullOrEmpty())
{
SelectedUser = Users.FindLast(x => x.UserName.Equals(ActivityModel.UserName)); SelectedUser = Users.FindLast(x => x.UserName.Equals(ActivityModel.UserName));
await InvokeAsync(StateHasChanged);
}
if (!IsNew && Id != null) if (!IsNew && Id != null)
ActivityFileList = await IntegryApiService.GetActivityFile(Id); ActivityFileList = await IntegryApiService.GetActivityFile(Id);
@@ -576,6 +581,9 @@
{ {
ActivityModel.CodAnag = parts[0]; ActivityModel.CodAnag = parts[0];
ActivityModel.Cliente = parts[1]; ActivityModel.Cliente = parts[1];
var isCliente = Clienti.FirstOrDefault(x => x.CodAnag != null && x.CodAnag.Equals(ActivityModel.CodAnag));
ActivityModel.TipoAnag = isCliente == null ? "P" : "C";
} }
OnAfterChangeValue(); OnAfterChangeValue();
@@ -593,6 +601,7 @@
if (com.CodAnag != null) if (com.CodAnag != null)
{ {
ActivityModel.CodAnag = com.CodAnag; ActivityModel.CodAnag = com.CodAnag;
ActivityModel.TipoAnag = com.TipoAnag;
ActivityModel.Cliente = Clienti ActivityModel.Cliente = Clienti
.Where(x => x.CodAnag != null && x.CodAnag.Equals(com.CodAnag)) .Where(x => x.CodAnag != null && x.CodAnag.Equals(com.CodAnag))
.Select(x => x.RagSoc) .Select(x => x.RagSoc)
@@ -605,6 +614,7 @@
{ {
ActivityModel.CodAnag = null; ActivityModel.CodAnag = null;
ActivityModel.Cliente = null; ActivityModel.Cliente = null;
ActivityModel.TipoAnag = null;
} }
} }
else else
@@ -613,6 +623,7 @@
ActivityModel.Commessa = null; ActivityModel.Commessa = null;
ActivityModel.CodAnag = null; ActivityModel.CodAnag = null;
ActivityModel.Cliente = null; ActivityModel.Cliente = null;
ActivityModel.TipoAnag = null;
} }
OnAfterChangeValue(); OnAfterChangeValue();
@@ -786,7 +797,7 @@
Snackbar.Add("Impossibile aprire il file", Severity.Error); Snackbar.Add("Impossibile aprire il file", Severity.Error);
} }
} }
private async Task DeleteAttach(ActivityFileDto file) private async Task DeleteAttach(ActivityFileDto file)
{ {
Snackbar.Clear(); Snackbar.Clear();

View File

@@ -0,0 +1,6 @@
namespace salesbook.Shared.Core.Interface.System;
public interface IGenericSystemService
{
string GetCurrentAppVersion();
}