Compare commits
47 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 51edaa918a | |||
| 655048645b | |||
| 82caec9287 | |||
| 36c79829b5 | |||
| bc0ff628fe | |||
| 527d29eac3 | |||
| 51686f4ed7 | |||
| ae30f49d13 | |||
| 156ef822d3 | |||
| bb83c88275 | |||
| b1275a5b98 | |||
| 7b2e722b9f | |||
| 65a9e544e8 | |||
| 1c93191a3c | |||
| adfda41ecb | |||
| 5e07882384 | |||
| 1598e4d3df | |||
| 732b09c5db | |||
| 97c372f0d7 | |||
| 6d61b675a5 | |||
| 786766c402 | |||
| 76d8c027ea | |||
| 8cc5def978 | |||
| 8bf61b66e0 | |||
| 2f716385a5 | |||
| 16973a3203 | |||
| 5157366942 | |||
| 4f49625022 | |||
| e4272e2571 | |||
| a344c71a41 | |||
| 16084755d4 | |||
| 677842f5e2 | |||
| e52c9f56fa | |||
| 871bec2cf3 | |||
| 0a5ea3ad64 | |||
| 11557de866 | |||
| 0a1fb88174 | |||
| 1b28ddd007 | |||
| 447c1d1d90 | |||
| 050637948a | |||
| 0497d6aaa5 | |||
| be56ae95c5 | |||
| c8603a2a34 | |||
| 3b2e8eefa4 | |||
| 06f2f7c9ea | |||
| 3908ee690d | |||
| a15279766f |
@@ -176,6 +176,22 @@ namespace GWMS.Data.Controllers
|
|||||||
return dbResult;
|
return dbResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public OrderModel GetOrderByCode(string OrderCode)
|
||||||
|
{
|
||||||
|
OrderModel dbResult = new OrderModel();
|
||||||
|
using (GWMSContext localDbCtx = new GWMSContext(_configuration))
|
||||||
|
{
|
||||||
|
dbResult = localDbCtx
|
||||||
|
.DbSetOrders
|
||||||
|
.Where(x => (x.OrderCode == OrderCode))
|
||||||
|
.Include(p => p.Plant)
|
||||||
|
.Include(s => s.Supplier)
|
||||||
|
.Include(t => t.Transporter)
|
||||||
|
.FirstOrDefault();
|
||||||
|
}
|
||||||
|
return dbResult;
|
||||||
|
}
|
||||||
|
|
||||||
public List<OrderModel> GetOrdersFilt(int PlantId, int SupplierId, int TransporterId, DateTime DtStart, DateTime DtEnd, bool ShowClosed)
|
public List<OrderModel> GetOrdersFilt(int PlantId, int SupplierId, int TransporterId, DateTime DtStart, DateTime DtEnd, bool ShowClosed)
|
||||||
{
|
{
|
||||||
var dbResult = dbCtx
|
var dbResult = dbCtx
|
||||||
@@ -388,27 +404,48 @@ namespace GWMS.Data.Controllers
|
|||||||
bool done = false;
|
bool done = false;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var currData = dbCtx
|
OrderModel currData = null;
|
||||||
.DbSetOrders
|
currData = dbCtx
|
||||||
.Where(x => x.OrderId == updItem.OrderId)
|
.DbSetOrders
|
||||||
.FirstOrDefault();
|
.Where(x => x.OrderId == updItem.OrderId)
|
||||||
|
.FirstOrDefault();
|
||||||
if (currData != null)
|
if (currData != null)
|
||||||
{
|
{
|
||||||
// se ho modificato data --> cambio codice ordine!
|
using (GWMSContext localDbCtx = new GWMSContext(_configuration))
|
||||||
if (!dbCtx.Entry(updItem).OriginalValues["DtOrder"].Equals(dbCtx.Entry(updItem).CurrentValues["DtOrder"]))
|
|
||||||
{
|
{
|
||||||
updItem.OrderCode = $"O{updItem.Plant.PlantCode}{updItem.DtOrder:yyMMddHHmm}";
|
// se ho modificato data --> cambio codice ordine!
|
||||||
updItem.OrderDesc = $"Ordine {updItem.Plant.PlantDesc} - {updItem.DtOrder}";
|
if (!localDbCtx.Entry(updItem).OriginalValues["DtOrder"].Equals(localDbCtx.Entry(updItem).CurrentValues["DtOrder"]))
|
||||||
|
{
|
||||||
|
updItem.OrderCode = $"O{updItem.Plant.PlantCode}{updItem.DtOrder:yyMMddHHmm}";
|
||||||
|
updItem.OrderDesc = $"Ordine {updItem.Plant.PlantDesc} - {updItem.DtOrder}";
|
||||||
|
}
|
||||||
|
localDbCtx.Entry(updItem).State = EntityState.Modified;
|
||||||
|
localDbCtx.SaveChanges();
|
||||||
}
|
}
|
||||||
dbCtx.Entry(updItem).State = EntityState.Modified;
|
|
||||||
|
//// se ho modificato data --> cambio codice ordine!
|
||||||
|
//if (!dbCtx.Entry(updItem).OriginalValues["DtOrder"].Equals(dbCtx.Entry(updItem).CurrentValues["DtOrder"]))
|
||||||
|
//{
|
||||||
|
// updItem.OrderCode = $"O{updItem.Plant.PlantCode}{updItem.DtOrder:yyMMddHHmm}";
|
||||||
|
// updItem.OrderDesc = $"Ordine {updItem.Plant.PlantDesc} - {updItem.DtOrder}";
|
||||||
|
//}
|
||||||
|
//dbCtx.Entry(updItem).State = EntityState.Modified;
|
||||||
|
//dbCtx.SaveChanges();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
//using (GWMSContext localDbCtx = new GWMSContext(_configuration))
|
||||||
|
//{
|
||||||
|
// localDbCtx
|
||||||
|
// .DbSetOrders
|
||||||
|
// .Add(updItem);
|
||||||
|
// localDbCtx.SaveChanges();
|
||||||
|
//}
|
||||||
dbCtx
|
dbCtx
|
||||||
.DbSetOrders
|
.DbSetOrders
|
||||||
.Add(updItem);
|
.Add(updItem);
|
||||||
|
dbCtx.SaveChanges();
|
||||||
}
|
}
|
||||||
dbCtx.SaveChanges();
|
|
||||||
done = true;
|
done = true;
|
||||||
}
|
}
|
||||||
catch (Exception exc)
|
catch (Exception exc)
|
||||||
@@ -440,35 +477,35 @@ namespace GWMS.Data.Controllers
|
|||||||
var rawLevelData = dbCtxMult
|
var rawLevelData = dbCtxMult
|
||||||
.DbSetPlantLog
|
.DbSetPlantLog
|
||||||
.Where(x => x.FluxType == "Level" && x.PlantId == PlantId)
|
.Where(x => x.FluxType == "Level" && x.PlantId == PlantId)
|
||||||
.OrderBy(x => x.DtEvent)
|
.OrderByDescending(x => x.DtEvent)
|
||||||
.Take(maxRecords)
|
.Take(maxRecords)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
var rawMainPressData = dbCtxMult
|
var rawMainPressData = dbCtxMult
|
||||||
.DbSetPlantLog
|
.DbSetPlantLog
|
||||||
.Where(x => x.FluxType == "MainPress" && x.PlantId == PlantId)
|
.Where(x => x.FluxType == "MainPress" && x.PlantId == PlantId)
|
||||||
.OrderBy(x => x.DtEvent)
|
.OrderByDescending(x => x.DtEvent)
|
||||||
.Take(maxRecords)
|
.Take(maxRecords)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
var rawBHPressData = dbCtxMult
|
var rawBHPressData = dbCtxMult
|
||||||
.DbSetPlantLog
|
.DbSetPlantLog
|
||||||
.Where(x => x.FluxType == "PressBH" && x.PlantId == PlantId)
|
.Where(x => x.FluxType == "PressBH" && x.PlantId == PlantId)
|
||||||
.OrderBy(x => x.DtEvent)
|
.OrderByDescending(x => x.DtEvent)
|
||||||
.Take(maxRecords)
|
.Take(maxRecords)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
var rawBLPressData = dbCtxMult
|
var rawBLPressData = dbCtxMult
|
||||||
.DbSetPlantLog
|
.DbSetPlantLog
|
||||||
.Where(x => x.FluxType == "PressBL" && x.PlantId == PlantId)
|
.Where(x => x.FluxType == "PressBL" && x.PlantId == PlantId)
|
||||||
.OrderBy(x => x.DtEvent)
|
.OrderByDescending(x => x.DtEvent)
|
||||||
.Take(maxRecords)
|
.Take(maxRecords)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
var rawOrderData = dbCtxMult
|
var rawOrderData = dbCtxMult
|
||||||
.DbSetOrders
|
.DbSetOrders
|
||||||
.Where(x => x.PlantId == PlantId && x.ExecutionQty == 0)
|
.Where(x => x.PlantId == PlantId && x.ExecutionQty == 0)
|
||||||
.OrderBy(x => x.DtOrder)
|
.OrderByDescending(x => x.DtOrder)
|
||||||
.Take(maxRecords)
|
.Take(maxRecords)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,10 @@
|
|||||||
<div class="row">
|
<div class="row px-1 text-light">
|
||||||
<div class="col-4 text-left">
|
<div class="col-5 pr-0 text-left">
|
||||||
GWMS v.@version
|
GWMS <span class="small">v.@version</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-4 text-center text-secondary small">
|
<div class="col-7 pl-0 text-right">
|
||||||
@adesso
|
<span class="small">@adesso</span>
|
||||||
</div>
|
<a class="text-light" href="https://www.egalware.com/" target="_blank">Egalware<img class="img-fluid" width="16" src="img/LogoBlu.svg" /></a>
|
||||||
<div class="col-4 text-right">
|
|
||||||
powered by <a class="text-light" href="https://www.egalware.com/" target="_blank">Egalware <img height="16" src="img/LogoBlu.svg" /></a>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<div class="col-12 small">
|
<div class="col-12 small">
|
||||||
@if (totalCount > 0)
|
@if (totalCount > 0)
|
||||||
{
|
{
|
||||||
<Pagination>
|
<Pagination Class="mb-0">
|
||||||
<PaginationItem>
|
<PaginationItem>
|
||||||
<PaginationLink Clicked="@HandlePaginationItemClick" Page="1">
|
<PaginationLink Clicked="@HandlePaginationItemClick" Page="1">
|
||||||
<i class="fas fa-angle-double-left"></i>
|
<i class="fas fa-angle-double-left"></i>
|
||||||
@@ -49,19 +49,18 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 col-lg-3 small">
|
<div class="col-12 col-lg-3">
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<div class="p-2 flex-fill">
|
<div class="p-1 flex-fill text-right">
|
||||||
@if (!showLoading)
|
@if (!showLoading)
|
||||||
{
|
{
|
||||||
<span>@totalCount records</span>
|
<span>@totalCount records</span>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<div class="p-2 flex-fill text-right">
|
<div class="p-1 flex-fill text-right small">
|
||||||
@if (totalCount > 0)
|
@if (totalCount > 0)
|
||||||
{
|
{
|
||||||
<div class="input-group input-group-sm">
|
<div class="input-group input-group-sm">
|
||||||
row/pag:
|
|
||||||
<select @bind="@PageSize" class="form-control form-control-sm">
|
<select @bind="@PageSize" class="form-control form-control-sm">
|
||||||
<option value="5">5</option>
|
<option value="5">5</option>
|
||||||
<option value="10">10</option>
|
<option value="10">10</option>
|
||||||
|
|||||||
@@ -121,47 +121,65 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="col-12 col-lg-9 align-items-center">
|
<div class="col-12 col-lg-9 align-items-center">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-9">
|
<div class="col-3">
|
||||||
<div class="row">
|
<div class="input-group">
|
||||||
<div class="col-6">
|
<div class="input-group-prepend">
|
||||||
<div class="input-group">
|
<span class="input-group-text"><span class="fas fa-calendar" aria-hidden="true"></span></span>
|
||||||
<div class="input-group-prepend">
|
|
||||||
<span class="input-group-text"><span class="fas fa-calendar" aria-hidden="true"></span></span>
|
|
||||||
</div>
|
|
||||||
<DateEdit class="form-control" InputMode="DateInputMode.DateTime" @bind-Date="@_currItem.DtExecStart" />
|
|
||||||
<div class="input-group-append">
|
|
||||||
<span class="input-group-text">inizio carico</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6">
|
<DateEdit class="form-control" InputMode="DateInputMode.DateTime" @bind-Date="@_currItem.DtExecStart" />
|
||||||
<div class="input-group">
|
@*<div class="input-group-append">
|
||||||
<div class="input-group-prepend">
|
<span class="input-group-text">inizio carico</span>
|
||||||
<span class="input-group-text"><span class="fas fa-calendar" aria-hidden="true"></span></span>
|
</div>*@
|
||||||
</div>
|
</div>
|
||||||
<DateEdit class="form-control" InputMode="DateInputMode.DateTime" @bind-Date="@_currItem.DtExecEnd" />
|
</div>
|
||||||
<div class="input-group-append">
|
<div class="col-3 pl-0">
|
||||||
<span class="input-group-text">fine carico</span>
|
<div class="input-group">
|
||||||
</div>
|
<div class="input-group-prepend">
|
||||||
</div>
|
<span class="input-group-text"><span class="fas fa-database" aria-hidden="true"></span></span>
|
||||||
|
</div>
|
||||||
|
<InputNumber @bind-Value="@_currItem.LevelStart" class="form-control"></InputNumber>
|
||||||
|
<div class="input-group-append">
|
||||||
|
<span class="input-group-text">inizio</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-3 pl-0">
|
<div class="col-3 pl-0">
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text">
|
<span class="input-group-text"><span class="fas fa-calendar" aria-hidden="true"></span></span>
|
||||||
<span class="fas fa-weight" aria-hidden="true"></span>
|
|
||||||
</span>
|
|
||||||
</div>
|
</div>
|
||||||
<InputNumber @bind-Value="@_currItem.ExecutionQty" class="form-control"></InputNumber>
|
<DateEdit class="form-control" InputMode="DateInputMode.DateTime" @bind-Date="@_currItem.DtExecEnd" />
|
||||||
|
@*<div class="input-group-append">
|
||||||
|
<span class="input-group-text">fine carico</span>
|
||||||
|
</div>*@
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-3 pl-0">
|
||||||
|
<div class="input-group">
|
||||||
|
<div class="input-group-prepend">
|
||||||
|
<span class="input-group-text"><span class="fas fa-database" aria-hidden="true"></span></span>
|
||||||
|
</div>
|
||||||
|
<InputNumber @bind-Value="@_currItem.LevelEnd" class="form-control"></InputNumber>
|
||||||
<div class="input-group-append">
|
<div class="input-group-append">
|
||||||
<span class="input-group-text">kg</span>
|
<span class="input-group-text">fine</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-12 col-lg-2">
|
||||||
|
<div class="input-group">
|
||||||
|
<div class="input-group-prepend">
|
||||||
|
<span class="input-group-text">
|
||||||
|
<span class="fas fa-weight" aria-hidden="true"></span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<InputNumber @bind-Value="@_currItem.ExecutionQty" class="form-control"></InputNumber>
|
||||||
|
<div class="input-group-append">
|
||||||
|
<span class="input-group-text">kg</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
</EditForm>
|
</EditForm>
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
@if (@_currItem != null)
|
||||||
|
{
|
||||||
|
<ul class="list-group">
|
||||||
|
<li class="list-group-item active">
|
||||||
|
<h3 class="textCondensed mb-0">@OrderCode</h3>
|
||||||
|
</li>
|
||||||
|
<li class="list-group-item"><i>@_currItem.OrderDesc</i></li>
|
||||||
|
@if (plantCorrect)
|
||||||
|
{
|
||||||
|
<li class="list-group-item h2">
|
||||||
|
<i class="fas fa-weight-hanging"></i>
|
||||||
|
<b>@_currItem.OrderQty.ToString("N0")</b> kg
|
||||||
|
</li>
|
||||||
|
@if (showStart)
|
||||||
|
{
|
||||||
|
<li class="list-group-item">
|
||||||
|
<button class="btn btn-lg btn-block btn-success" @onclick="() => RefillStart()" title="Inizio Carico"><i class="fas fa-play"></i> Inizio Carico</button>
|
||||||
|
</li>
|
||||||
|
}
|
||||||
|
@if (showEnd)
|
||||||
|
{
|
||||||
|
<EditForm Model="@_currItem">
|
||||||
|
<DataAnnotationsValidator />
|
||||||
|
<li class="list-group-item">
|
||||||
|
<div class="input-group">
|
||||||
|
<div class="input-group-prepend">
|
||||||
|
<span class="input-group-text">
|
||||||
|
<span class="fas fa-weight" aria-hidden="true"></span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<InputNumber @bind-Value="@_currItem.ExecutionQty" class="form-control"></InputNumber>
|
||||||
|
<div class="input-group-append">
|
||||||
|
<span class="input-group-text">kg</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</EditForm>
|
||||||
|
<li class="list-group-item">
|
||||||
|
<button class="btn btn-lg btn-block btn-warning" @onclick="() => RefillEnd()" title="Fine Carico"><i class="fas fa-stop"></i> Fine Carico</button>
|
||||||
|
</li>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</ul>
|
||||||
|
}
|
||||||
@@ -0,0 +1,197 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.AspNetCore.Components;
|
||||||
|
using GWMS.UI.Components;
|
||||||
|
using GWMS.UI.Data;
|
||||||
|
using GWMS.Data.DatabaseModels;
|
||||||
|
using GWMS.Data.DTO;
|
||||||
|
|
||||||
|
namespace GWMS.UI.Components
|
||||||
|
{
|
||||||
|
public partial class OrderLoad : ComponentBase
|
||||||
|
{
|
||||||
|
#region Private Fields
|
||||||
|
|
||||||
|
private PlantDTO currPlantData = null;
|
||||||
|
private List<PlantDTO> plantsData = new List<PlantDTO>();
|
||||||
|
|
||||||
|
#endregion Private Fields
|
||||||
|
|
||||||
|
#region Protected Fields
|
||||||
|
|
||||||
|
protected OrderModel _currItem = new OrderModel();
|
||||||
|
|
||||||
|
#endregion Protected Fields
|
||||||
|
|
||||||
|
#region Protected Properties
|
||||||
|
|
||||||
|
[Inject]
|
||||||
|
protected GWMSDataService DataService { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// verifica correttezza plant/ordine
|
||||||
|
/// </summary>
|
||||||
|
protected bool plantCorrect
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
bool answ = !string.IsNullOrEmpty(_orderCode);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (answ)
|
||||||
|
{
|
||||||
|
answ = _orderCode.StartsWith($"O{currPlantData.PlantCode}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
answ = false;
|
||||||
|
}
|
||||||
|
return answ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected bool showEnd
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
bool answ = (PlantId > 0);
|
||||||
|
if (answ)
|
||||||
|
{
|
||||||
|
if (_currItem != null)
|
||||||
|
{
|
||||||
|
DateTime oggi = DateTime.Today;
|
||||||
|
answ = _currItem.DtExecStart.Year > 1 && _currItem.DtExecEnd.Year <= 1;
|
||||||
|
// se visibile --> calcolo valore execution!
|
||||||
|
if (answ && _currItem.ExecutionQty < 1)
|
||||||
|
{
|
||||||
|
_currItem.ExecutionQty = Math.Ceiling((currPlantData.LevelAct - _currItem.LevelStart) / 100) * 100;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return answ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected bool showStart
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
bool answ = (PlantId > 0);
|
||||||
|
if (answ)
|
||||||
|
{
|
||||||
|
if (_currItem != null)
|
||||||
|
{
|
||||||
|
answ = _currItem.DtExecStart.Year <= 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return answ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Protected Properties
|
||||||
|
|
||||||
|
#region Public Properties
|
||||||
|
|
||||||
|
public string _orderCode { get; set; } = "";
|
||||||
|
|
||||||
|
public int _plantId { get; set; } = 0;
|
||||||
|
|
||||||
|
[Parameter]
|
||||||
|
public OrderModel currItem
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _currItem;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_currItem = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Parameter]
|
||||||
|
public string OrderCode
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _orderCode;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_orderCode = value;
|
||||||
|
var pUpd = Task.Run(async () => await ReloadData());
|
||||||
|
pUpd.Wait();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Parameter]
|
||||||
|
public int PlantId
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _plantId;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_plantId = value;
|
||||||
|
var pUpd = Task.Run(async () => await ReloadData());
|
||||||
|
pUpd.Wait();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Public Properties
|
||||||
|
|
||||||
|
#region Private Methods
|
||||||
|
|
||||||
|
private async Task ReloadData()
|
||||||
|
{
|
||||||
|
plantsData = await DataService.PlantsGetAll();
|
||||||
|
// recupero dato del plant corrente
|
||||||
|
currPlantData = plantsData.Where(x => x.PlantId == PlantId).FirstOrDefault();
|
||||||
|
// solo se ho valore QR selezionato
|
||||||
|
if (!string.IsNullOrEmpty(OrderCode))
|
||||||
|
{
|
||||||
|
currItem = await DataService.OrderGetByCode(OrderCode);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
currItem = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Private Methods
|
||||||
|
|
||||||
|
#region Protected Methods
|
||||||
|
|
||||||
|
protected void RefillEnd()
|
||||||
|
{
|
||||||
|
if (currPlantData != null)
|
||||||
|
{
|
||||||
|
// aggiorno il record corrente con livello e dataora inizio carico...
|
||||||
|
_currItem.LevelEnd = currPlantData.LevelAct;
|
||||||
|
_currItem.DtExecEnd = DateTime.Now;
|
||||||
|
}
|
||||||
|
|
||||||
|
// salvo...
|
||||||
|
DataService.OrderUpdate(_currItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void RefillStart()
|
||||||
|
{
|
||||||
|
if (currPlantData != null)
|
||||||
|
{
|
||||||
|
// aggiorno il record corrente con livello e dataora inizio carico...
|
||||||
|
_currItem.LevelStart = currPlantData.LevelAct;
|
||||||
|
_currItem.DtExecStart = DateTime.Now;
|
||||||
|
}
|
||||||
|
|
||||||
|
// salvo...
|
||||||
|
DataService.OrderUpdate(_currItem);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Protected Methods
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,9 +10,9 @@
|
|||||||
@inject IConfiguration Configuration
|
@inject IConfiguration Configuration
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header bg-info text-light">
|
@*<div class="card-header bg-info text-light">
|
||||||
<b>Modifica</b>
|
<b>Modifica</b>
|
||||||
</div>
|
</div>*@
|
||||||
<div class="card-body small p-1">
|
<div class="card-body small p-1">
|
||||||
<EditForm Model="@_currItem">
|
<EditForm Model="@_currItem">
|
||||||
<DataAnnotationsValidator />
|
<DataAnnotationsValidator />
|
||||||
@@ -26,10 +26,10 @@
|
|||||||
<div class="input-group input-group-sm">
|
<div class="input-group input-group-sm">
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text" style="width: 3em;">
|
<span class="input-group-text" style="width: 3em;">
|
||||||
<span class="fas fa-calendar-alt" aria-hidden="true"></span>
|
<span class="fas fa-truck" aria-hidden="true"></span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<InputDate id="DtEta" @bind-Value="_currItem.DtETA" class="form-control" title="ETA (previsione consegna)" />
|
<DateEdit @bind-Date="_currItem.DtETA" InputMode="DateInputMode.DateTime" class="form-control" title="ETA (previsione consegna)" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
@@ -50,11 +50,13 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 col-lg-2">
|
<div class="col-12 col-lg-2">
|
||||||
<div>
|
<div class="row">
|
||||||
<button type="button" class="btn btn-sm btn-outline-success btn-block" value="Save" @onclick="saveUpdate">Save <i class="far fa-save"></i></button>
|
<div class="col-6">
|
||||||
</div>
|
<button type="button" class="btn btn-sm btn-success btn-block" value="Save" @onclick="saveUpdate">Save <i class="far fa-save"></i></button>
|
||||||
<div>
|
</div>
|
||||||
<button type="button" class="btn btn-sm btn-outline-warning btn-block" value="Cancel" @onclick="cancelUpdate">Cancel <i class="fas fa-ban"></i></button>
|
<div class="col-6">
|
||||||
|
<button type="button" class="btn btn-sm btn-warning btn-block" value="Cancel" @onclick="cancelUpdate">Cancel <i class="fas fa-ban"></i></button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,15 +2,15 @@
|
|||||||
@using GWMS.UI.Components
|
@using GWMS.UI.Components
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header table-primary h1 py-1">
|
<div class="card-header table-primary py-1">
|
||||||
@if (currItem != null)
|
@if (currItem != null)
|
||||||
{
|
{
|
||||||
<div class="row py-0">
|
<div class="row py-0">
|
||||||
<div class="col-6">
|
<div class="col-5 pr-0 font-weight-bold">
|
||||||
<b>@currItem.PlantCode</b>
|
<h2>@currItem.PlantCode</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-6 text-right">
|
<div class="col-7 text-right">
|
||||||
@currItem.PlantDesc
|
<h4>@currItem.PlantDesc</h4>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<ul class="list-group">
|
<ul class="list-group">
|
||||||
<li class="list-group-item d-flex justify-content-between align-items-center p-0">
|
<li class="list-group-item d-flex justify-content-between align-items-center p-0 border border-primary">
|
||||||
<img src="./img/Plant/@(currItem.PlantCode).jpg" class="img-fluid" />
|
<img src="./img/Plant/@(currItem.PlantCode).jpg" class="img-fluid" />
|
||||||
</li>
|
</li>
|
||||||
<li class="list-group-item active d-flex justify-content-between align-items-center py-1">PB Alta</li>
|
<li class="list-group-item active d-flex justify-content-between align-items-center py-1">PB Alta</li>
|
||||||
@@ -42,7 +42,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-8">
|
<div class="col-8 pl-1">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<ul class="list-group">
|
<ul class="list-group">
|
||||||
@@ -79,8 +79,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="card-footer alert alert-primary mb-0 p-1">
|
<div class="card-footer alert alert-primary mb-0 p-1">
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between">
|
||||||
<div class="py-1 px-2 h2 mb-0">
|
<div class="py-1 px-2 mb-0">
|
||||||
Ordini aperti: <b>@currItem.OrderTS.Count</b>
|
<h4>Ordini aperti: <b>@currItem.OrderTS.Count</b></h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="py-1 px-2">
|
<div class="py-1 px-2">
|
||||||
<button class="btn btn-block btn-primary" title="Mostra Ordini" @onclick="() => ShowOrders(currItem.PlantId)">Mostra Ordini <i class="fas fa-file-invoice"></i></button>
|
<button class="btn btn-block btn-primary" title="Mostra Ordini" @onclick="() => ShowOrders(currItem.PlantId)">Mostra Ordini <i class="fas fa-file-invoice"></i></button>
|
||||||
|
|||||||
@@ -26,7 +26,11 @@ namespace GWMS.UI.Components
|
|||||||
{
|
{
|
||||||
new {
|
new {
|
||||||
Display = true,
|
Display = true,
|
||||||
//type = "time"
|
//type = "timeseries",
|
||||||
|
//type = "time",
|
||||||
|
//Time = new {
|
||||||
|
// unit="day"
|
||||||
|
//}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
YAxes = new object[]
|
YAxes = new object[]
|
||||||
@@ -130,9 +134,12 @@ namespace GWMS.UI.Components
|
|||||||
{
|
{
|
||||||
int answ = 1;
|
int answ = 1;
|
||||||
int numCount = _currItem.LevelTS.Count;
|
int numCount = _currItem.LevelTS.Count;
|
||||||
// passo a 2h se > 1 week
|
// passo a 2h se > 5 gg
|
||||||
if (numCount > 120)
|
if (numCount > 120)
|
||||||
answ = 2;
|
answ = 2;
|
||||||
|
// passo a 3h se > 10 gg
|
||||||
|
else if (numCount > 240)
|
||||||
|
answ = 3;
|
||||||
redFact = answ;
|
redFact = answ;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -144,6 +151,7 @@ namespace GWMS.UI.Components
|
|||||||
//Label = "Livello",
|
//Label = "Livello",
|
||||||
Data = _currItem.LevelTS.Where((cat, index) => index % redFact == 0).Select(x => x.ValDouble).ToList(),
|
Data = _currItem.LevelTS.Where((cat, index) => index % redFact == 0).Select(x => x.ValDouble).ToList(),
|
||||||
BorderColor = getLineColors(1f),
|
BorderColor = getLineColors(1f),
|
||||||
|
BackgroundColor = getFillColors(0.25f),
|
||||||
Fill = true,
|
Fill = true,
|
||||||
PointRadius = 3,
|
PointRadius = 3,
|
||||||
BorderWidth = 2,
|
BorderWidth = 2,
|
||||||
@@ -165,7 +173,19 @@ namespace GWMS.UI.Components
|
|||||||
#region Protected Methods
|
#region Protected Methods
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Genera colori sfondo 33% rosso / arancione / giallo
|
/// Genera colori sfondo
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="numRecords"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
protected List<string> getFillColors(float alpha)
|
||||||
|
{
|
||||||
|
List<string> answ = new List<string>();
|
||||||
|
answ.Add(ChartColor.FromRgba(108, 164, 254, alpha));
|
||||||
|
return answ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Genera colori linea
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="numRecords"></param>
|
/// <param name="numRecords"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
|
|||||||
@@ -467,6 +467,20 @@ namespace GWMS.UI.Data
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async Task<OrderModel> OrderGetByCode(string OrderCode)
|
||||||
|
{
|
||||||
|
OrderModel dbResult = new OrderModel();
|
||||||
|
|
||||||
|
Stopwatch stopWatch = new Stopwatch();
|
||||||
|
stopWatch.Start();
|
||||||
|
dbResult = dbController.GetOrderByCode(OrderCode);
|
||||||
|
stopWatch.Stop();
|
||||||
|
TimeSpan ts = stopWatch.Elapsed;
|
||||||
|
Log.Info($"Effettuata lettura da DB per OrderGetByCode: {ts.TotalMilliseconds} ms");
|
||||||
|
|
||||||
|
return await Task.FromResult(dbResult);
|
||||||
|
}
|
||||||
|
|
||||||
public async Task<List<OrderModel>> OrdersGetFilt(SelectOrderData CurrFilter)
|
public async Task<List<OrderModel>> OrdersGetFilt(SelectOrderData CurrFilter)
|
||||||
{
|
{
|
||||||
List<OrderModel> dbResult = new List<OrderModel>();
|
List<OrderModel> dbResult = new List<OrderModel>();
|
||||||
|
|||||||
@@ -0,0 +1,39 @@
|
|||||||
|
using Microsoft.AspNetCore.Components;
|
||||||
|
using Microsoft.AspNetCore.WebUtilities;
|
||||||
|
|
||||||
|
namespace GWMS.UI.Extensions
|
||||||
|
{
|
||||||
|
public static class NavigationManagerExtension
|
||||||
|
{
|
||||||
|
#region Public Methods
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Estensione metodo NavigationManager
|
||||||
|
///
|
||||||
|
/// https://code-maze.com/query-strings-blazor-webassembly/
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
/// <param name="navManager"></param>
|
||||||
|
/// <param name="key"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static T ExtractQueryStringByKey<T>(this NavigationManager navManager, string key)
|
||||||
|
{
|
||||||
|
var uri = navManager.ToAbsoluteUri(navManager.Uri);
|
||||||
|
QueryHelpers.ParseQuery(uri.Query)
|
||||||
|
.TryGetValue(key, out var queryValue);
|
||||||
|
|
||||||
|
if (typeof(T).Equals(typeof(int)))
|
||||||
|
{
|
||||||
|
int.TryParse(queryValue, out int result);
|
||||||
|
return (T)(object)result;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof(T).Equals(typeof(string)))
|
||||||
|
return (T)(object)queryValue.ToString();
|
||||||
|
|
||||||
|
return default;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Public Methods
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net5.0</TargetFramework>
|
<TargetFramework>net5.0</TargetFramework>
|
||||||
<Version>1.0.2108.1012</Version>
|
<Version>1.0.2108.2410</Version>
|
||||||
<UserSecretsId>95c9f021-52d1-4390-a670-5810b7b777b0</UserSecretsId>
|
<UserSecretsId>95c9f021-52d1-4390-a670-5810b7b777b0</UserSecretsId>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
@@ -24,6 +24,7 @@
|
|||||||
<PackageReference Include="AspNetCore.HealthChecks.UI.Client" Version="5.0.1" />
|
<PackageReference Include="AspNetCore.HealthChecks.UI.Client" Version="5.0.1" />
|
||||||
<PackageReference Include="AspNetCore.HealthChecks.UI.InMemory.Storage" Version="5.0.1" />
|
<PackageReference Include="AspNetCore.HealthChecks.UI.InMemory.Storage" Version="5.0.1" />
|
||||||
<PackageReference Include="AspNetCore.HealthChecks.Uris" Version="5.0.1" />
|
<PackageReference Include="AspNetCore.HealthChecks.Uris" Version="5.0.1" />
|
||||||
|
<PackageReference Include="BlazorBarcodeScanner.ZXing.JS" Version="0.2.4" />
|
||||||
<PackageReference Include="Blazorise" Version="0.9.3.7" />
|
<PackageReference Include="Blazorise" Version="0.9.3.7" />
|
||||||
<PackageReference Include="Blazorise.Bootstrap" Version="0.9.3.7" />
|
<PackageReference Include="Blazorise.Bootstrap" Version="0.9.3.7" />
|
||||||
<PackageReference Include="Blazorise.Charts" Version="0.9.3.7" />
|
<PackageReference Include="Blazorise.Charts" Version="0.9.3.7" />
|
||||||
|
|||||||
@@ -1,18 +1,46 @@
|
|||||||
@page "/GasStation"
|
@page "/GasStation"
|
||||||
|
@page "/GasStation/{OrderCode}"
|
||||||
|
|
||||||
@using Blazorise.Components
|
@using Blazorise.Components
|
||||||
@using GWMS.UI.Components
|
@using GWMS.UI.Components
|
||||||
|
@using BlazorBarcodeScanner.ZXing.JS
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header table-primary mb-0">
|
<div class="card-header table-primary mb-0">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-9 col-lg-8 h3">
|
<div class="col-6 col-lg-8 h4">
|
||||||
Registrazione
|
QRCode
|
||||||
</div>
|
</div>
|
||||||
<div class="col-3 col-lg-2">
|
<div class="col-6 col-lg-2">
|
||||||
<button class="btn btn-sm btn-block btn-secondary" @onclick="() => ToggleBCode()"><i class="fas fa-qrcode"></i> <i class="fas fa-chevron-down"></i></button>
|
@if (string.IsNullOrEmpty(OrderCode))
|
||||||
|
{
|
||||||
|
<button class="btn btn-sm btn-block btn-info" @onclick="() => ToggleShowCam()" title="reload"><i class="fas fa-camera"></i> show select</button>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<button class="btn btn-sm btn-block btn-success" @onclick="() => ToggleBCode()" title="reload"><i class="fas fa-qrcode"></i> re-scan</button>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="input-group">
|
||||||
|
<div class="input-group-prepend">
|
||||||
|
<span class="input-group-text">
|
||||||
|
<span class="fas fa-gas-pump" aria-hidden="true"></span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<select @bind="@SelPlantId" class="form-control form-control-sm">
|
||||||
|
<option value="0">--- Tutti ---</option>
|
||||||
|
@if (PlantsList != null)
|
||||||
|
{
|
||||||
|
foreach (var item in PlantsList)
|
||||||
|
{
|
||||||
|
<option value="@item.PlantId">@item.PlantCode | @item.PlantDesc</option>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -22,25 +50,45 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="card-body p-1">
|
<div class="card-body p-1">
|
||||||
<div class="row small">
|
<div class="row small">
|
||||||
<div class="col-12">
|
<div class="col-12 text-center">
|
||||||
<b>Acquisizione barcode</b>
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<input class="form-control" />
|
@if (SelPlantId == 0)
|
||||||
|
{
|
||||||
|
<h2 class="alert alert-danger">Manca Stazione</h2>
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
@if (string.IsNullOrEmpty(OrderCode))
|
||||||
|
{
|
||||||
|
<BlazorBarcodeScanner.ZXing.JS.BarcodeReader Title=""
|
||||||
|
StartCameraAutomatically="true"
|
||||||
|
ShowStart="false"
|
||||||
|
ShowReset="false"
|
||||||
|
ShowToggleTorch="false"
|
||||||
|
ShowVideoDeviceList="@showCamera"
|
||||||
|
ShowResult="false"
|
||||||
|
OnBarcodeReceived="LocalReceivedBarcodeText" />
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
<OrderLoad OrderCode="@OrderCode" PlantId="@SelPlantId"></OrderLoad>
|
||||||
|
}
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<p class="small">
|
@*<p class="small">
|
||||||
|
|
||||||
Work IN progress, links:
|
Work IN progress, links:
|
||||||
<ul>
|
<ul>
|
||||||
<li>https://github.com/sabitertan/BlazorBarcodeScanner</li>
|
<li>https://github.com/sabitertan/BlazorBarcodeScanner</li>
|
||||||
<li>https://github.com/tallichet/ZXingBlazor</li>
|
<li>https://github.com/tallichet/ZXingBlazor</li>
|
||||||
<li>https://github.com/LorsSilvermort/BlazorBarcodeReader</li>
|
<li>https://github.com/LorsSilvermort/BlazorBarcodeReader</li>
|
||||||
<li>https://www.bing.com/search?q=blazor+server+qrcode+scanner&qs=n&form=QBRE&sp=-1&pq=blazor+server+qrcode+scanner&sc=0-28&sk=&cvid=D827470C199B47BDB39F277EFC72A266</li>
|
<li>https://www.bing.com/search?q=blazor+server+qrcode+scanner&qs=n&form=QBRE&sp=-1&pq=blazor+server+qrcode+scanner&sc=0-28&sk=&cvid=D827470C199B47BDB39F277EFC72A266</li>
|
||||||
</ul>
|
</ul>
|
||||||
</p>
|
</p>*@
|
||||||
</div>
|
|
||||||
<div class="card-footer p-1">
|
|
||||||
</div>
|
</div>
|
||||||
|
@*<div class="card-footer p-1">
|
||||||
|
</div>*@
|
||||||
</div>
|
</div>
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using GWMS.Data.DatabaseModels;
|
using BlazorBarcodeScanner.ZXing.JS;
|
||||||
|
using GWMS.Data.DatabaseModels;
|
||||||
using GWMS.Data.DTO;
|
using GWMS.Data.DTO;
|
||||||
using GWMS.UI.Data;
|
using GWMS.UI.Data;
|
||||||
using Microsoft.AspNetCore.Components;
|
using Microsoft.AspNetCore.Components;
|
||||||
@@ -14,51 +15,12 @@ namespace GWMS.UI.Pages
|
|||||||
{
|
{
|
||||||
#region Private Fields
|
#region Private Fields
|
||||||
|
|
||||||
private OrderModel currRecord = null;
|
|
||||||
|
|
||||||
private List<OrderModel> ListRecords;
|
|
||||||
private List<PlantDTO> PlantsList;
|
private List<PlantDTO> PlantsList;
|
||||||
private List<OrderModel> SearchRecords;
|
|
||||||
private List<TransporterModel> TransportersList;
|
|
||||||
|
|
||||||
#endregion Private Fields
|
#endregion Private Fields
|
||||||
|
|
||||||
#region Private Properties
|
#region Private Properties
|
||||||
|
|
||||||
private int _currPage { get; set; } = 1;
|
|
||||||
|
|
||||||
private int _numRecord { get; set; } = 10;
|
|
||||||
|
|
||||||
private int currPage
|
|
||||||
{
|
|
||||||
get => _currPage;
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (_currPage != value)
|
|
||||||
{
|
|
||||||
_currPage = value;
|
|
||||||
var pUpd = Task.Run(async () => await ReloadData());
|
|
||||||
pUpd.Wait();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool isLoading { get; set; } = false;
|
|
||||||
|
|
||||||
private int numRecord
|
|
||||||
{
|
|
||||||
get => _numRecord;
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (_numRecord != value)
|
|
||||||
{
|
|
||||||
_numRecord = value;
|
|
||||||
var pUpd = Task.Run(async () => await ReloadData());
|
|
||||||
pUpd.Wait();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private int SelPlantId
|
private int SelPlantId
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -75,87 +37,19 @@ namespace GWMS.UI.Pages
|
|||||||
if (!MessageService.Order_Filter.PlantId.Equals(value))
|
if (!MessageService.Order_Filter.PlantId.Equals(value))
|
||||||
{
|
{
|
||||||
MessageService.Order_Filter.PlantId = value;
|
MessageService.Order_Filter.PlantId = value;
|
||||||
var pUpd = Task.Run(async () => await ReloadData());
|
|
||||||
pUpd.Wait();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private int SelTranspId
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
int answ = 0;
|
|
||||||
if (MessageService.Order_Filter != null)
|
|
||||||
{
|
|
||||||
answ = MessageService.Order_Filter.TransporterId;
|
|
||||||
}
|
|
||||||
return answ;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (!MessageService.Order_Filter.TransporterId.Equals(value))
|
|
||||||
{
|
|
||||||
MessageService.Order_Filter.TransporterId = value;
|
|
||||||
var pUpd = Task.Run(async () => await ReloadData());
|
|
||||||
pUpd.Wait();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool ShowCharts { get; set; } = false;
|
|
||||||
|
|
||||||
#endregion Private Properties
|
#endregion Private Properties
|
||||||
|
|
||||||
#region Protected Properties
|
#region Protected Properties
|
||||||
|
|
||||||
|
protected string _plantCode { get; set; } = "";
|
||||||
|
|
||||||
[Inject]
|
[Inject]
|
||||||
protected GWMSDataService DataService { get; set; }
|
protected GWMSDataService DataService { get; set; }
|
||||||
|
|
||||||
protected DateTime DateEnd
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
DateTime answ = DateTime.Today.AddDays(1);
|
|
||||||
if (MessageService.Order_Filter != null)
|
|
||||||
{
|
|
||||||
answ = MessageService.Order_Filter.DateEnd;
|
|
||||||
}
|
|
||||||
return answ;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (!MessageService.Order_Filter.DateEnd.Equals(value))
|
|
||||||
{
|
|
||||||
MessageService.Order_Filter.DateEnd = value;
|
|
||||||
var pUpd = Task.Run(async () => await ReloadData());
|
|
||||||
pUpd.Wait();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected DateTime DateStart
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
DateTime answ = DateTime.Today.AddDays(-1);
|
|
||||||
if (MessageService.Order_Filter != null)
|
|
||||||
{
|
|
||||||
answ = MessageService.Order_Filter.DateStart;
|
|
||||||
}
|
|
||||||
return answ;
|
|
||||||
}
|
|
||||||
set
|
|
||||||
{
|
|
||||||
if (!MessageService.Order_Filter.DateStart.Equals(value))
|
|
||||||
{
|
|
||||||
MessageService.Order_Filter.DateStart = value;
|
|
||||||
var pUpd = Task.Run(async () => await ReloadData());
|
|
||||||
pUpd.Wait();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
[Inject]
|
[Inject]
|
||||||
protected IJSRuntime JSRuntime { get; set; }
|
protected IJSRuntime JSRuntime { get; set; }
|
||||||
|
|
||||||
@@ -165,141 +59,82 @@ namespace GWMS.UI.Pages
|
|||||||
[Inject]
|
[Inject]
|
||||||
protected NavigationManager NavManager { get; set; }
|
protected NavigationManager NavManager { get; set; }
|
||||||
|
|
||||||
protected bool showBcodeScan { get; set; } = false;
|
protected bool showCamera { get; set; } = false;
|
||||||
|
|
||||||
protected int totalCount
|
|
||||||
{
|
|
||||||
get
|
|
||||||
{
|
|
||||||
int answ = 0;
|
|
||||||
if (SearchRecords != null)
|
|
||||||
{
|
|
||||||
answ = SearchRecords.Count;
|
|
||||||
}
|
|
||||||
return answ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion Protected Properties
|
#endregion Protected Properties
|
||||||
|
|
||||||
|
#region Public Properties
|
||||||
|
|
||||||
|
public string BarcodeText { get; set; } = "";
|
||||||
|
|
||||||
|
[Parameter]
|
||||||
|
public string OrderCode
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return BarcodeText;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
BarcodeText = $"{value}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[Parameter]
|
||||||
|
public string PlantCode
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return _plantCode;
|
||||||
|
}
|
||||||
|
set
|
||||||
|
{
|
||||||
|
_plantCode = $"{value}";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion Public Properties
|
||||||
|
|
||||||
#region Private Methods
|
#region Private Methods
|
||||||
|
|
||||||
private void OnDateEndChanged(DateTime? date)
|
private void LocalReceivedBarcodeText(BarcodeReceivedEventArgs args)
|
||||||
{
|
{
|
||||||
DateEnd = (DateTime)date;
|
// rimando a pagina con codice ordine....
|
||||||
}
|
NavManager.NavigateTo($"GasStation/{args.BarcodeText}");
|
||||||
|
|
||||||
private void OnDateStartChanged(DateTime? date)
|
|
||||||
{
|
|
||||||
DateStart = (DateTime)date;
|
|
||||||
}
|
|
||||||
|
|
||||||
private async Task ReloadData()
|
|
||||||
{
|
|
||||||
isLoading = true;
|
|
||||||
SearchRecords = await DataService.OrdersGetFilt(MessageService.Order_Filter);
|
|
||||||
ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList();
|
|
||||||
isLoading = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Private Methods
|
#endregion Private Methods
|
||||||
|
|
||||||
#region Protected Methods
|
#region Protected Methods
|
||||||
|
|
||||||
protected void Edit(OrderModel selRecord)
|
|
||||||
{
|
|
||||||
currRecord = selRecord;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void ForceReload(int newNum)
|
|
||||||
{
|
|
||||||
numRecord = newNum;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void ForceReloadPage(int newNum)
|
|
||||||
{
|
|
||||||
currPage = newNum;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
MessageService.ShowSearch = false;
|
MessageService.ShowSearch = false;
|
||||||
MessageService.PageName = "Fornitore";
|
MessageService.PageName = "Stazione";
|
||||||
MessageService.PageIcon = "fas fa-industry pr-2";
|
MessageService.PageIcon = "fas fa-gas-pump pr-2";
|
||||||
MessageService.EA_SearchUpdated += OnSeachUpdated;
|
|
||||||
await ReloadAllData();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected async Task ReloadAllData()
|
|
||||||
{
|
|
||||||
PlantsList = await DataService.PlantsGetAll();
|
PlantsList = await DataService.PlantsGetAll();
|
||||||
TransportersList = await DataService.TransportersGetAll();
|
|
||||||
await ReloadData();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void ResetData()
|
protected void ResetData()
|
||||||
{
|
{
|
||||||
DataService.rollBackEdit(currRecord);
|
|
||||||
currRecord = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected async Task ResetFilter(SelectOrderData newFilter)
|
|
||||||
{
|
|
||||||
currRecord = null;
|
|
||||||
SearchRecords = null;
|
|
||||||
ListRecords = null;
|
|
||||||
MessageService.Order_Filter = SelectOrderData.Init(5, 7);
|
|
||||||
await ReloadAllData();
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void Select(OrderModel selRecord)
|
|
||||||
{
|
|
||||||
// applico filtro da selezione
|
|
||||||
currRecord = selRecord;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void ToggleBCode()
|
protected void ToggleBCode()
|
||||||
{
|
{
|
||||||
showBcodeScan = !showBcodeScan;
|
NavManager.NavigateTo("GasStation");
|
||||||
}
|
}
|
||||||
|
|
||||||
protected async Task UpdateData()
|
protected void ToggleShowCam()
|
||||||
{
|
{
|
||||||
currRecord = null;
|
showCamera = !showCamera;
|
||||||
await ReloadData();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Protected Methods
|
#endregion Protected Methods
|
||||||
|
|
||||||
#region Public Methods
|
#region Public Methods
|
||||||
|
|
||||||
public string checkSelect(int OrderId)
|
|
||||||
{
|
|
||||||
string answ = "";
|
|
||||||
if (currRecord != null)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
answ = (currRecord.OrderId == OrderId) ? "table-info" : "";
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{ }
|
|
||||||
}
|
|
||||||
return answ;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Dispose()
|
public void Dispose()
|
||||||
{
|
{
|
||||||
MessageService.EA_SearchUpdated -= OnSeachUpdated;
|
|
||||||
}
|
|
||||||
|
|
||||||
public async void OnSeachUpdated()
|
|
||||||
{
|
|
||||||
await InvokeAsync(() =>
|
|
||||||
{
|
|
||||||
Task task = UpdateData();
|
|
||||||
StateHasChanged();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion Public Methods
|
#endregion Public Methods
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
@inject GWMSDataService DataService
|
@inject GWMSDataService DataService
|
||||||
@inject MessageService AppMService
|
@inject MessageService AppMService
|
||||||
|
|
||||||
<div class="jumbotron">
|
<div class="jumbotron py-4">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12 col-lg-4">
|
<div class="col-12 col-lg-4">
|
||||||
<h1>GWMS</h1>
|
<h1>GWMS</h1>
|
||||||
@@ -16,29 +16,29 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 col-lg-8 text-right">
|
<div class="col-12 col-lg-8 text-right">
|
||||||
<div class="text-light display-4">
|
<div class="text-light h1 d-none d-md-block">
|
||||||
<span class="fas fa-home" aria-hidden="true"></span> | <span class="fas fa-gas-pump" aria-hidden="true"></span> | <span class="fas fa-file-invoice" aria-hidden="true"></span> | <span class="fas fa-industry" aria-hidden="true"></span> | <span class="fas fa-truck-moving" aria-hidden="true"></span> | <span class="fas fa-wrench" aria-hidden="true"></span>
|
<span class="fas fa-home" aria-hidden="true"></span> | <span class="fas fa-gas-pump" aria-hidden="true"></span> | <span class="fas fa-file-invoice" aria-hidden="true"></span> | <span class="fas fa-industry" aria-hidden="true"></span> | <span class="fas fa-truck-moving" aria-hidden="true"></span> | <span class="fas fa-wrench" aria-hidden="true"></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12 my-5">
|
<div class="col-12 my-lg-5">
|
||||||
<SetupDiagnostics></SetupDiagnostics>
|
<SetupDiagnostics></SetupDiagnostics>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 text-center">
|
<div class="col-12 text-center">
|
||||||
<img class="img-fluid mb-3" src="./img/LogoPizzaferri.jpg" />
|
<img class="img-fluid mb-3" src="./img/LogoPizzaferri.png" />
|
||||||
<h3>
|
<h4>
|
||||||
Sistema di gestione e pianificazione logistica impianti distribuzione metano
|
Sistema di gestione e pianificazione logistica impianti distribuzione metano
|
||||||
</h3>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-12 text-center mt-5">
|
<div class="col-12 text-center mt-5">
|
||||||
<div class="col-4"></div>
|
<div class="col-4"></div>
|
||||||
<div class="col-4"></div>
|
<div class="col-4"></div>
|
||||||
<div class="col-4 badge badge-pill badge-dark">
|
<div class="col-4 badge badge-pill badge-dark">
|
||||||
<h3>
|
<div class="px-1">
|
||||||
<a class="text-light" href="https://www.egalware.com/" target="_blank">powered by EgalWare <img width="32" class="img-fluid" src="img/LogoBlu.svg" /></a>
|
<a class="text-light" href="https://www.egalware.com/" target="_blank">powered by EgalWare <img width="24" class="img-fluid" src="img/LogoBlu.svg" /></a>
|
||||||
</h3>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+33
-25
@@ -6,37 +6,56 @@
|
|||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header table-primary h3">
|
<div class="card-header table-primary h3">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-3 h3">
|
<div class="col-6 col-lg-2 h3">
|
||||||
Elenco Ordini
|
Elenco Ordini
|
||||||
</div>
|
</div>
|
||||||
<div class="col-9 text-right">
|
<div class="col-6 col-lg-2 text-right">
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between">
|
||||||
<div class="p-2">
|
<div class="p-2">
|
||||||
<div class="input-group input-group-sm">
|
<div class="form-group mb-0">
|
||||||
<div class="input-group-prepend">
|
<Button id="btnReset" class="btn btn-info btn-sm btn-block" Clicked="ResetFilter" title="Reset Filter"><span class="oi oi-loop-circular"></span></Button>
|
||||||
</div>
|
|
||||||
<div class="custom-control custom-switch">
|
|
||||||
<input type="checkbox" class="custom-control-input" id="togAttivi" title="Solo Aperti / Mostra tutti" @bind-value="@ShowClosed" />
|
|
||||||
<label class="custom-control-label small" for="togAttivi">tutti</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="p-2">
|
<div class="p-2">
|
||||||
<div class="input-group input-group-sm">
|
<div class="input-group input-group-sm">
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text">inizio:</span>
|
|
||||||
<DateEdit class="form-control form-control-sm" TValue="DateTime?" Date="@DateStart" DateChanged="@OnDateStartChanged" />
|
|
||||||
</div>
|
</div>
|
||||||
|
<div class="custom-control custom-switch">
|
||||||
|
<input type="checkbox" class="custom-control-input" id="togAttivi" title="Solo Aperti / Mostra tutti" @bind-value="@ShowClosed" checked="@ShowClosed" />
|
||||||
|
<label class="custom-control-label small" for="togAttivi"><sub>evasi</sub></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="p-2">
|
||||||
|
@if (ShowAddNew)
|
||||||
|
{
|
||||||
|
<button class="btn btn-block btn-sm btn-success" @onclick="CreateNew" title="Aggiunta nuovo Ordine"><i class="far fa-calendar-plus"></i></button>
|
||||||
|
}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-12 col-lg-4 text-right">
|
||||||
|
<div class="d-flex justify-content-between">
|
||||||
|
<div class="p-2">
|
||||||
|
<div class="input-group input-group-sm">
|
||||||
|
<div class="input-group-prepend">
|
||||||
|
<span class="input-group-text">inizio:</span>
|
||||||
|
</div>
|
||||||
|
<DateEdit class="form-control form-control-sm" TValue="DateTime?" Date="@DateStart" DateChanged="@OnDateStartChanged" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="p-2">
|
<div class="p-2">
|
||||||
<div class="input-group input-group-sm">
|
<div class="input-group input-group-sm">
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text">fine:</span>
|
<span class="input-group-text">fine:</span>
|
||||||
<DateEdit class="form-control form-control-sm" TValue="DateTime?" Date="@DateEnd" DateChanged="@OnDateEndChanged" />
|
|
||||||
</div>
|
</div>
|
||||||
|
<DateEdit class="form-control form-control-sm" TValue="DateTime?" Date="@DateEnd" DateChanged="@OnDateEndChanged" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-12 col-lg-4 text-right">
|
||||||
|
<div class="d-flex justify-content-between">
|
||||||
<div class="p-2">
|
<div class="p-2">
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
@@ -75,17 +94,6 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="p-2">
|
|
||||||
<div class="form-group mb-0">
|
|
||||||
<Button id="btnReset" class="btn btn-info btn-sm btn-block" Clicked="ResetFilter" title="Reset Filter"><span class="oi oi-loop-circular"></span></Button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="p-2">
|
|
||||||
@if (ShowAddNew)
|
|
||||||
{
|
|
||||||
<button class="btn btn-block btn-sm btn-success" @onclick="CreateNew">Nuovo <i class="far fa-calendar-plus"></i></button>
|
|
||||||
}
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -107,7 +115,7 @@
|
|||||||
{
|
{
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<table class="table table-sm table-striped">
|
<table class="table table-sm table-striped table-responsive-lg">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th></th>
|
<th></th>
|
||||||
@@ -149,7 +157,7 @@
|
|||||||
<div>
|
<div>
|
||||||
@record.DtExecStart.Date.ToString("ddd dd/MM/yyyyy")
|
@record.DtExecStart.Date.ToString("ddd dd/MM/yyyyy")
|
||||||
</div>
|
</div>
|
||||||
<div class="small">@record.DtExecStart.TimeOfDay --> @record.DtExecEnd.TimeOfDay</div>
|
<div class="small">@record.DtExecStart.ToString("HH:mm:ss") --> @record.DtExecEnd.ToString("HH:mm:ss")</div>
|
||||||
}
|
}
|
||||||
</td>
|
</td>
|
||||||
<td class="text-right">
|
<td class="text-right">
|
||||||
|
|||||||
@@ -262,13 +262,18 @@ namespace GWMS.UI.Pages
|
|||||||
OrderCode = $"O{currPlant.PlantCode}{adesso:yyMMddHHmm}",
|
OrderCode = $"O{currPlant.PlantCode}{adesso:yyMMddHHmm}",
|
||||||
};
|
};
|
||||||
// aggiorno filtro
|
// aggiorno filtro
|
||||||
AppMService.Order_Filter = SelectOrderData.Init(5, 7);
|
AppMService.Order_Filter = SelectOrderData.Init(5, 10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void Edit(OrderModel selRecord)
|
protected void Edit(OrderModel selRecord)
|
||||||
{
|
{
|
||||||
|
// rileggo dal DB il record corrente...
|
||||||
|
#if false
|
||||||
currRecord = selRecord;
|
currRecord = selRecord;
|
||||||
|
#endif
|
||||||
|
var pUpd = Task.Run(async () => currRecord = await DataService.OrderGetByCode(selRecord.OrderCode));
|
||||||
|
pUpd.Wait();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void ForceReload(int newNum)
|
protected void ForceReload(int newNum)
|
||||||
@@ -283,6 +288,7 @@ namespace GWMS.UI.Pages
|
|||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
|
DataService.ResetController();
|
||||||
AppMService.ShowSearch = false;
|
AppMService.ShowSearch = false;
|
||||||
AppMService.PageName = "Ordini";
|
AppMService.PageName = "Ordini";
|
||||||
AppMService.PageIcon = "fas fa-file-invoice pr-2";
|
AppMService.PageIcon = "fas fa-file-invoice pr-2";
|
||||||
@@ -308,7 +314,8 @@ namespace GWMS.UI.Pages
|
|||||||
currRecord = null;
|
currRecord = null;
|
||||||
SearchRecords = null;
|
SearchRecords = null;
|
||||||
ListRecords = null;
|
ListRecords = null;
|
||||||
AppMService.Order_Filter = SelectOrderData.Init(5, 7);
|
AppMService.Order_Filter = SelectOrderData.Init(5, 10);
|
||||||
|
ShowClosed = false;
|
||||||
await ReloadAllData();
|
await ReloadAllData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,7 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
@foreach (var record in ListRecords)
|
@foreach (var record in ListRecords)
|
||||||
{
|
{
|
||||||
<div class="col-12 col-md-6 py-2">
|
<div class="col-12 col-xl-6 py-2">
|
||||||
<PlantDetail currItem="@record"></PlantDetail>
|
<PlantDetail currItem="@record"></PlantDetail>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
@page "/Suppliers"
|
@page "/Suppliers"
|
||||||
|
@page "/Suppliers/{SupplierIdReq}"
|
||||||
|
|
||||||
@using Blazorise.Components
|
@using Blazorise.Components
|
||||||
@using GWMS.UI.Components
|
@using GWMS.UI.Components
|
||||||
@@ -6,27 +7,31 @@
|
|||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header table-primary h3">
|
<div class="card-header table-primary h3">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-3 h3">
|
<div class="col-12 col-lg-4 h3">
|
||||||
Ordini Fornitore
|
Ordini Fornitore
|
||||||
</div>
|
</div>
|
||||||
<div class="col-9 text-right">
|
<div class="col-12 col-lg-4 text-right">
|
||||||
<div class="d-flex justify-content-between">
|
<div class="d-flex justify-content-between">
|
||||||
<div class="p-2">
|
<div class="p-2">
|
||||||
<div class="input-group input-group-sm">
|
<div class="input-group input-group-sm">
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text">inizio:</span>
|
<span class="input-group-text">inizio:</span>
|
||||||
<DateEdit class="form-control form-control-sm" TValue="DateTime?" Date="@DateStart" DateChanged="@OnDateStartChanged" />
|
|
||||||
</div>
|
</div>
|
||||||
|
<DateEdit class="form-control form-control-sm" TValue="DateTime?" Date="@DateStart" DateChanged="@OnDateStartChanged" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="p-2">
|
<div class="p-2">
|
||||||
<div class="input-group input-group-sm">
|
<div class="input-group input-group-sm">
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
<span class="input-group-text">fine:</span>
|
<span class="input-group-text">fine:</span>
|
||||||
<DateEdit class="form-control form-control-sm" TValue="DateTime?" Date="@DateEnd" DateChanged="@OnDateEndChanged" />
|
|
||||||
</div>
|
</div>
|
||||||
|
<DateEdit class="form-control form-control-sm" TValue="DateTime?" Date="@DateEnd" DateChanged="@OnDateEndChanged" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-12 col-lg-4 text-right">
|
||||||
|
<div class="d-flex justify-content-between">
|
||||||
<div class="p-2">
|
<div class="p-2">
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<div class="input-group-prepend">
|
<div class="input-group-prepend">
|
||||||
@@ -85,7 +90,7 @@
|
|||||||
{
|
{
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<table class="table table-sm table-striped">
|
<table class="table table-sm table-striped table-responsive-lg">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th></th>
|
<th></th>
|
||||||
|
|||||||
@@ -165,6 +165,16 @@ namespace GWMS.UI.Pages
|
|||||||
[Inject]
|
[Inject]
|
||||||
protected NavigationManager NavManager { get; set; }
|
protected NavigationManager NavManager { get; set; }
|
||||||
|
|
||||||
|
protected int SupplierIdFilt
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
int answ = 0;
|
||||||
|
int.TryParse(SupplierIdReq, out answ);
|
||||||
|
return answ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected int totalCount
|
protected int totalCount
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
@@ -180,6 +190,13 @@ namespace GWMS.UI.Pages
|
|||||||
|
|
||||||
#endregion Protected Properties
|
#endregion Protected Properties
|
||||||
|
|
||||||
|
#region Public Properties
|
||||||
|
|
||||||
|
[Parameter]
|
||||||
|
public string SupplierIdReq { get; set; } = "";
|
||||||
|
|
||||||
|
#endregion Public Properties
|
||||||
|
|
||||||
#region Private Methods
|
#region Private Methods
|
||||||
|
|
||||||
private void OnDateEndChanged(DateTime? date)
|
private void OnDateEndChanged(DateTime? date)
|
||||||
@@ -231,7 +248,8 @@ namespace GWMS.UI.Pages
|
|||||||
protected async Task ReloadAllData()
|
protected async Task ReloadAllData()
|
||||||
{
|
{
|
||||||
PlantsList = await DataService.PlantsGetAll();
|
PlantsList = await DataService.PlantsGetAll();
|
||||||
SuppliersList = await DataService.SuppliersGetAll();
|
var suppliersAll = await DataService.SuppliersGetAll();
|
||||||
|
SuppliersList = suppliersAll.Where(x => x.SupplierId == SupplierIdFilt || SupplierIdFilt == 0).ToList();
|
||||||
await ReloadData();
|
await ReloadData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,18 +4,25 @@
|
|||||||
@using GWMS.UI.Components
|
@using GWMS.UI.Components
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header table-primary mb-0">
|
<div class="card-header table-primary pb-0 mb-0">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-6 col-lg-8 h3">
|
<div class="col-6 pr-0 col-lg-8 h3">
|
||||||
In Consegna
|
Consegne
|
||||||
</div>
|
</div>
|
||||||
<div class="col-3 col-lg-2">
|
<div class="col-6 col-lg-4">
|
||||||
<button class="btn btn-sm btn-block btn-secondary" @onclick="() => ToggleFiltPeriod()"><i class="far fa-calendar-alt"></i> <i class="fas fa-chevron-down"></i></button>
|
<div class="row">
|
||||||
</div>
|
<div class="col-6 px-1">
|
||||||
<div class="col-3 col-lg-2">
|
<button class="btn btn-sm btn-block btn-secondary" @onclick="() => ToggleFiltPeriod()"><i class="far fa-calendar-alt"></i> <i class="@icnFiltTime"></i></button>
|
||||||
<button class="btn btn-sm btn-block btn-secondary" @onclick="() => ToggleFiltDest()"><i class="fas fa-gas-pump"></i> <i class="fas fa-chevron-down"></i></button>
|
</div>
|
||||||
|
@*<div class="col-4 px-1">
|
||||||
|
<button class="btn btn-sm btn-block btn-secondary" @onclick="() => ToggleFiltTransp()"><i class="fas fa-truck-moving"></i> <i class="@icnFiltTran"></i></button>
|
||||||
|
</div>*@
|
||||||
|
<div class="col-6 px-1">
|
||||||
|
<button class="btn btn-sm btn-block btn-secondary" @onclick="() => ToggleFiltDest()"><i class="fas fa-gas-pump"></i> <i class="@icnFiltDest"></i></button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -35,7 +42,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
||||||
@if (showFiltDest)
|
@if (showFiltDest)
|
||||||
{
|
{
|
||||||
<div class="row">
|
<div class="row">
|
||||||
@@ -58,26 +64,29 @@
|
|||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@*<div class="col">
|
|
||||||
<div class="input-group">
|
|
||||||
<div class="input-group-prepend">
|
|
||||||
<span class="input-group-text">
|
|
||||||
<span class="fas fa-truck-moving" aria-hidden="true"></span>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
<select @bind="@SelTranspId" class="form-control form-control-sm" title="Trasportatore">
|
|
||||||
@if (TransportersList != null)
|
|
||||||
{
|
|
||||||
foreach (var item in TransportersList)
|
|
||||||
{
|
|
||||||
<option value="@item.TransporterId">@item.TransporterCode | @item.TransporterDesc</option>
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>*@
|
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
<div class="row">
|
||||||
|
<div class="col">
|
||||||
|
<div class="input-group">
|
||||||
|
<div class="input-group-prepend">
|
||||||
|
<span class="input-group-text">
|
||||||
|
<span class="fas fa-truck-moving" aria-hidden="true"></span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
<select @bind="SelTranspId" class="form-control form-control-sm" title="Trasportatore">
|
||||||
|
<option value="0">--- Tutti ---</option>
|
||||||
|
@if (TransportersList != null)
|
||||||
|
{
|
||||||
|
foreach (var item in TransportersList)
|
||||||
|
{
|
||||||
|
<option value="@item.TransporterId">@item.TransporterCode | @item.TransporterDesc</option>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -119,8 +128,11 @@
|
|||||||
<div>
|
<div>
|
||||||
<b>@record.OrderQty.ToString("N0")</b>
|
<b>@record.OrderQty.ToString("N0")</b>
|
||||||
</div>
|
</div>
|
||||||
<div>@record.DtETA.ToString("yyyy.MM.dd")</div>
|
@if (!record.DtExecStart.Equals(@record.DtExecEnd))
|
||||||
<div class="small">@record.DtETA.ToString("ddd HH:mm.ss")</div>
|
{
|
||||||
|
<div>@record.DtETA.ToString("yyyy.MM.dd")</div>
|
||||||
|
<div class="small">@record.DtETA.ToString("ddd HH:mm.ss")</div>
|
||||||
|
}
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ namespace GWMS.UI.Pages
|
|||||||
private List<OrderModel> ListRecords;
|
private List<OrderModel> ListRecords;
|
||||||
private List<PlantDTO> PlantsList;
|
private List<PlantDTO> PlantsList;
|
||||||
private List<OrderModel> SearchRecords;
|
private List<OrderModel> SearchRecords;
|
||||||
|
|
||||||
private List<TransporterModel> TransportersList;
|
private List<TransporterModel> TransportersList;
|
||||||
|
|
||||||
#endregion Private Fields
|
#endregion Private Fields
|
||||||
@@ -43,6 +44,30 @@ namespace GWMS.UI.Pages
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string icnFiltDest
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return showFiltDest ? "fas fa-chevron-up" : "fas fa-chevron-down";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private string icnFiltTime
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return showFiltTime ? "fas fa-chevron-up" : "fas fa-chevron-down";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private string icnFiltTran
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return showFiltTrasp ? "fas fa-chevron-up" : "fas fa-chevron-down";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private bool isLoading { get; set; } = false;
|
private bool isLoading { get; set; } = false;
|
||||||
|
|
||||||
private int numRecord
|
private int numRecord
|
||||||
@@ -74,6 +99,7 @@ namespace GWMS.UI.Pages
|
|||||||
{
|
{
|
||||||
if (!MessageService.Order_Filter.PlantId.Equals(value))
|
if (!MessageService.Order_Filter.PlantId.Equals(value))
|
||||||
{
|
{
|
||||||
|
currRecord = null;
|
||||||
MessageService.Order_Filter.PlantId = value;
|
MessageService.Order_Filter.PlantId = value;
|
||||||
var pUpd = Task.Run(async () => await ReloadData());
|
var pUpd = Task.Run(async () => await ReloadData());
|
||||||
pUpd.Wait();
|
pUpd.Wait();
|
||||||
@@ -96,6 +122,7 @@ namespace GWMS.UI.Pages
|
|||||||
{
|
{
|
||||||
if (!MessageService.Order_Filter.TransporterId.Equals(value))
|
if (!MessageService.Order_Filter.TransporterId.Equals(value))
|
||||||
{
|
{
|
||||||
|
currRecord = null;
|
||||||
MessageService.Order_Filter.TransporterId = value;
|
MessageService.Order_Filter.TransporterId = value;
|
||||||
var pUpd = Task.Run(async () => await ReloadData());
|
var pUpd = Task.Run(async () => await ReloadData());
|
||||||
pUpd.Wait();
|
pUpd.Wait();
|
||||||
@@ -103,8 +130,6 @@ namespace GWMS.UI.Pages
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool ShowCharts { get; set; } = false;
|
|
||||||
|
|
||||||
#endregion Private Properties
|
#endregion Private Properties
|
||||||
|
|
||||||
#region Protected Properties
|
#region Protected Properties
|
||||||
@@ -168,15 +193,16 @@ namespace GWMS.UI.Pages
|
|||||||
protected bool showFiltDest { get; set; } = false;
|
protected bool showFiltDest { get; set; } = false;
|
||||||
|
|
||||||
protected bool showFiltTime { get; set; } = false;
|
protected bool showFiltTime { get; set; } = false;
|
||||||
|
protected bool showFiltTrasp { get; set; } = false;
|
||||||
|
|
||||||
protected int totalCount
|
protected int totalCount
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
int answ = 0;
|
int answ = 0;
|
||||||
if (SearchRecords != null)
|
if (ListRecords != null)
|
||||||
{
|
{
|
||||||
answ = SearchRecords.Count;
|
answ = ListRecords.Count;
|
||||||
}
|
}
|
||||||
return answ;
|
return answ;
|
||||||
}
|
}
|
||||||
@@ -188,11 +214,13 @@ namespace GWMS.UI.Pages
|
|||||||
|
|
||||||
private void OnDateEndChanged(DateTime? date)
|
private void OnDateEndChanged(DateTime? date)
|
||||||
{
|
{
|
||||||
|
currRecord = null;
|
||||||
DateEnd = (DateTime)date;
|
DateEnd = (DateTime)date;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnDateStartChanged(DateTime? date)
|
private void OnDateStartChanged(DateTime? date)
|
||||||
{
|
{
|
||||||
|
currRecord = null;
|
||||||
DateStart = (DateTime)date;
|
DateStart = (DateTime)date;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -201,6 +229,7 @@ namespace GWMS.UI.Pages
|
|||||||
isLoading = true;
|
isLoading = true;
|
||||||
SearchRecords = await DataService.OrdersGetFilt(MessageService.Order_Filter);
|
SearchRecords = await DataService.OrdersGetFilt(MessageService.Order_Filter);
|
||||||
ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList();
|
ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList();
|
||||||
|
//ListRecords = SearchRecords.Where(x => x.TransporterId == TransporterIdFilt).Skip(numRecord * (currPage - 1)).Take(numRecord).ToList();
|
||||||
isLoading = false;
|
isLoading = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -225,6 +254,8 @@ namespace GWMS.UI.Pages
|
|||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
{
|
{
|
||||||
|
SelPlantId = 0;
|
||||||
|
SelTranspId = 0;
|
||||||
MessageService.ShowSearch = false;
|
MessageService.ShowSearch = false;
|
||||||
MessageService.PageName = "Fornitore";
|
MessageService.PageName = "Fornitore";
|
||||||
MessageService.PageIcon = "fas fa-industry pr-2";
|
MessageService.PageIcon = "fas fa-industry pr-2";
|
||||||
@@ -263,6 +294,10 @@ namespace GWMS.UI.Pages
|
|||||||
protected void ToggleFiltDest()
|
protected void ToggleFiltDest()
|
||||||
{
|
{
|
||||||
showFiltDest = !showFiltDest;
|
showFiltDest = !showFiltDest;
|
||||||
|
if (!showFiltDest)
|
||||||
|
{
|
||||||
|
SelPlantId = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void ToggleFiltPeriod()
|
protected void ToggleFiltPeriod()
|
||||||
@@ -270,6 +305,11 @@ namespace GWMS.UI.Pages
|
|||||||
showFiltTime = !showFiltTime;
|
showFiltTime = !showFiltTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void ToggleFiltTransp()
|
||||||
|
{
|
||||||
|
showFiltTrasp = !showFiltTrasp;
|
||||||
|
}
|
||||||
|
|
||||||
protected async Task UpdateData()
|
protected async Task UpdateData()
|
||||||
{
|
{
|
||||||
currRecord = null;
|
currRecord = null;
|
||||||
|
|||||||
@@ -11,7 +11,10 @@
|
|||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||||
|
<meta name="mobile-web-app-capable" content="yes">
|
||||||
|
@*<meta name="viewport" content="width=device-width, initial-scale=1.0" />*@
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
|
||||||
<title>GWMS.UI</title>
|
<title>GWMS.UI</title>
|
||||||
<base href="~/" />
|
<base href="~/" />
|
||||||
@*<link rel="stylesheet" href="css/bootstrap/bootstrap.min.css" />*@
|
@*<link rel="stylesheet" href="css/bootstrap/bootstrap.min.css" />*@
|
||||||
@@ -27,7 +30,8 @@
|
|||||||
<link href="GWMS.UI.styles.css" rel="stylesheet" />
|
<link href="GWMS.UI.styles.css" rel="stylesheet" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<component type="typeof(App)" render-mode="ServerPrerendered" />
|
<component type="typeof(App)" render-mode="Server" />
|
||||||
|
@*<component type="typeof(App)" render-mode="ServerPrerendered" />*@
|
||||||
|
|
||||||
<div id="blazor-error-ui">
|
<div id="blazor-error-ui">
|
||||||
<environment include="Staging,Production">
|
<environment include="Staging,Production">
|
||||||
@@ -50,6 +54,9 @@
|
|||||||
<script src="_content/Blazorise.Bootstrap/blazorise.bootstrap.js"></script>
|
<script src="_content/Blazorise.Bootstrap/blazorise.bootstrap.js"></script>
|
||||||
<script src="_content/Blazorise.Charts/blazorise.charts.js"></script>
|
<script src="_content/Blazorise.Charts/blazorise.charts.js"></script>
|
||||||
|
|
||||||
|
<script src="_content/BlazorBarcodeScanner.ZXing.JS/zxingjs.index.min.js"></script>
|
||||||
|
<script src="_content/BlazorBarcodeScanner.ZXing.JS/BlazorBarcodeScanner.js"></script>
|
||||||
|
|
||||||
<script src="_framework/blazor.server.js"></script>
|
<script src="_framework/blazor.server.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -6,8 +6,8 @@
|
|||||||
@implements IDisposable
|
@implements IDisposable
|
||||||
|
|
||||||
<div class="page">
|
<div class="page">
|
||||||
<div class="sidebar">
|
<div class="@sideClass">
|
||||||
<NavMenu />
|
<NavMenu EC_compressUpdated="@UpdateNavDisplay" />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<CascadingValue Name="ShowSearch" Value=@ShowSearch>
|
<CascadingValue Name="ShowSearch" Value=@ShowSearch>
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
<div class="top-row">
|
<div class="top-row">
|
||||||
<CmpTop></CmpTop>
|
<CmpTop></CmpTop>
|
||||||
</div>
|
</div>
|
||||||
<div class="content px-2 mb-5">
|
<div class="content pt-1 pt-lg-2 px-2 mb-5">
|
||||||
@Body
|
@Body
|
||||||
</div>
|
</div>
|
||||||
<div class="fixed-bottom bottom-row">
|
<div class="fixed-bottom bottom-row">
|
||||||
@@ -56,4 +56,14 @@
|
|||||||
MessageService.EA_ShowSearch -= OnHideSearch;
|
MessageService.EA_ShowSearch -= OnHideSearch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected bool navLarge { get; set; } = true;
|
||||||
|
|
||||||
|
protected string sideClass { get; set; } = "sidebar";
|
||||||
|
|
||||||
|
protected void UpdateNavDisplay()
|
||||||
|
{
|
||||||
|
navLarge = !navLarge;
|
||||||
|
sideClass = navLarge ? "sidebar" : "sidebarSmall";
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar {
|
.sidebar, .sidebarSmall {
|
||||||
background-image: linear-gradient(180deg, rgb(5, 39, 103) 20%, #3aa6ff 90%);
|
background-image: linear-gradient(180deg, rgb(5, 39, 103) 20%, #3aa6ff 90%);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -77,6 +77,13 @@
|
|||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sidebarSmall {
|
||||||
|
width: 80px;
|
||||||
|
height: 100vh;
|
||||||
|
position: sticky;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
.top-row {
|
.top-row {
|
||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
|
|||||||
@@ -1,14 +1,23 @@
|
|||||||
<div class="top-row pl-4 navbar navbar-dark">
|
<div class="top-row pl-3 navbar navbar-dark">
|
||||||
<a class="navbar-brand" href="">
|
<div class="text-nowrap">
|
||||||
<div class="row">
|
@if (showText)
|
||||||
<div class="col-2 px-0">
|
{
|
||||||
<img src="./img/LogoBlu.svg" class="img-fluid" width="128" />
|
<a class="navbar-brand" @onclick="() => ToggleCompress()" title="Comprimi">
|
||||||
</div>
|
<img src="./img/LogoBlu.svg" class="img-fluid" width="32" />
|
||||||
<div class="col-10 h4">
|
@*<i class="fas fa-chevron-left"></i>*@
|
||||||
MAPO.GWMS
|
</a>
|
||||||
</div>
|
}
|
||||||
</div>
|
else
|
||||||
</a>
|
{
|
||||||
|
<a class="navbar-brand" @onclick="() => ToggleCompress()" title="Comprimi">
|
||||||
|
<img src="./img/LogoBlu.svg" class="img-fluid" width="32" />
|
||||||
|
@*<i class="fas fa-chevron-right"></i>*@
|
||||||
|
</a>
|
||||||
|
}
|
||||||
|
<a class="navbar-brand" href="">
|
||||||
|
<span class="@hideText">MAPO.GWMS</span>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
<button class="navbar-toggler" @onclick="ToggleNavMenu">
|
<button class="navbar-toggler" @onclick="ToggleNavMenu">
|
||||||
<span class="navbar-toggler-icon"></span>
|
<span class="navbar-toggler-icon"></span>
|
||||||
</button>
|
</button>
|
||||||
@@ -16,57 +25,67 @@
|
|||||||
|
|
||||||
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
|
<div class="@NavMenuCssClass" @onclick="ToggleNavMenu">
|
||||||
<ul class="nav flex-column">
|
<ul class="nav flex-column">
|
||||||
<li class="nav-item px-3">
|
<li class="nav-item px-3" title="Home">
|
||||||
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
|
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
|
||||||
<span class="fas fa-home pr-2" aria-hidden="true"></span> Home
|
<span class="fas fa-home pr-2" aria-hidden="true"></span>
|
||||||
|
<span class="@hideText">Home</span>
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="nav-item px-3">
|
<li class="nav-item px-3" title="Stato Impianti">
|
||||||
<NavLink class="nav-link" href="PlantStatus">
|
<NavLink class="nav-link" href="PlantStatus">
|
||||||
<i class="fas fa-tachometer-alt pr-2"></i> Stato Impianti
|
<i class="fas fa-tachometer-alt pr-2"></i>
|
||||||
|
<span class="@hideText">Stato Impianti</span>
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item px-3">
|
<li class="nav-item px-3" title="Storico Ordini">
|
||||||
<NavLink class="nav-link" href="Orders">
|
<NavLink class="nav-link" href="Orders">
|
||||||
<i class="fas fa-file-invoice pr-2" aria-hidden="true"></i> Storico Ordini
|
<i class="fas fa-file-invoice pr-2" aria-hidden="true"></i>
|
||||||
|
<span class="@hideText">Storico Ordini</span>
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item px-3">
|
<li class="nav-item px-3" title="Scheda Fornitore">
|
||||||
<NavLink class="nav-link" href="Suppliers">
|
<NavLink class="nav-link" href="Suppliers">
|
||||||
<i class="fas fa-industry pr-2" aria-hidden="true"></i> Scheda Fornitore
|
<i class="fas fa-industry pr-2" aria-hidden="true"></i>
|
||||||
|
<span class="@hideText">Scheda Fornitore</span>
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item px-3">
|
<li class="nav-item px-3" title="Scheda Trasportatore">
|
||||||
<NavLink class="nav-link" href="Transporters">
|
<NavLink class="nav-link" href="Transporters">
|
||||||
<i class="fas fa-truck-moving pr-2" aria-hidden="true"></i> Scheda Trasportatore
|
<i class="fas fa-truck-moving pr-2" aria-hidden="true"></i>
|
||||||
|
<span class="@hideText">Scheda Trasportatore</span>
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item px-3">
|
<li class="nav-item px-3" title="Scheda Stazione">
|
||||||
<NavLink class="nav-link" href="GasStation">
|
<NavLink class="nav-link" href="GasStation">
|
||||||
<i class="fas fa-gas-pump pr-2" aria-hidden="true"></i> Scheda Stazione
|
<i class="fas fa-gas-pump pr-2" aria-hidden="true"></i>
|
||||||
|
<span class="@hideText">Scheda Stazione</span>
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item px-3">
|
<li class="nav-item px-3" title="Planner Consegne">
|
||||||
<NavLink class="nav-link" href="WeekPlan">
|
<NavLink class="nav-link" href="WeekPlan">
|
||||||
<i class="fas fa-calendar pr-2" aria-hidden="true"></i> Planner Consegne
|
<i class="fas fa-calendar pr-2" aria-hidden="true"></i>
|
||||||
|
<span class="@hideText">Planner Consegne</span>
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item px-3">
|
<li class="nav-item px-3" title="Utenti">
|
||||||
<NavLink class="nav-link" href="UserManager">
|
<NavLink class="nav-link" href="UserManager">
|
||||||
<i class="fas fa-users pr-2" aria-hidden="true"></i> Utenti
|
<i class="fas fa-users pr-2" aria-hidden="true"></i>
|
||||||
</NavLink>
|
<span class="@hideText">Utenti</span>
|
||||||
</li>
|
|
||||||
<li class="nav-item px-3">
|
|
||||||
<NavLink class="nav-link" href="Scheduler">
|
|
||||||
<i class="fas fa-calendar-alt pr-2" aria-hidden="true"></i> Job Scheduler
|
|
||||||
</NavLink>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item px-3">
|
|
||||||
<NavLink class="nav-link" href="Parameters">
|
|
||||||
<i class="fas fa-wrench pr-2" aria-hidden="true"></i> Setup Parametri
|
|
||||||
</NavLink>
|
</NavLink>
|
||||||
</li>
|
</li>
|
||||||
|
@*<li class="nav-item px-3" title="Job Scheduler">
|
||||||
|
<NavLink class="nav-link" href="Scheduler">
|
||||||
|
<i class="fas fa-calendar-alt pr-2" aria-hidden="true"></i>
|
||||||
|
<span class="@hideText">Job Scheduler</span>
|
||||||
|
</NavLink>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item px-3" title="Setup Parametri">
|
||||||
|
<NavLink class="nav-link" href="Parameters">
|
||||||
|
<i class="fas fa-wrench pr-2" aria-hidden="true"></i>
|
||||||
|
<span class="@hideText">Setup Parametri</span>
|
||||||
|
</NavLink>
|
||||||
|
</li>*@
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -79,4 +98,20 @@
|
|||||||
{
|
{
|
||||||
collapseNavMenu = !collapseNavMenu;
|
collapseNavMenu = !collapseNavMenu;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected bool showText { get; set; } = true;
|
||||||
|
|
||||||
|
protected void ToggleCompress()
|
||||||
|
{
|
||||||
|
showText = !showText;
|
||||||
|
EC_compressUpdated.InvokeAsync(showText);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected string hideText
|
||||||
|
{
|
||||||
|
get => showText ? "" : "invisible";
|
||||||
|
}
|
||||||
|
|
||||||
|
[Parameter]
|
||||||
|
public EventCallback<bool> EC_compressUpdated { get; set; }
|
||||||
}
|
}
|
||||||
+11
-1
@@ -11,6 +11,7 @@ using Microsoft.AspNetCore.Components;
|
|||||||
using Microsoft.AspNetCore.Components.Authorization;
|
using Microsoft.AspNetCore.Components.Authorization;
|
||||||
using Microsoft.AspNetCore.Diagnostics.HealthChecks;
|
using Microsoft.AspNetCore.Diagnostics.HealthChecks;
|
||||||
using Microsoft.AspNetCore.Hosting;
|
using Microsoft.AspNetCore.Hosting;
|
||||||
|
using Microsoft.AspNetCore.HttpOverrides;
|
||||||
using Microsoft.AspNetCore.HttpsPolicy;
|
using Microsoft.AspNetCore.HttpsPolicy;
|
||||||
using Microsoft.AspNetCore.Identity;
|
using Microsoft.AspNetCore.Identity;
|
||||||
using Microsoft.AspNetCore.Identity.UI;
|
using Microsoft.AspNetCore.Identity.UI;
|
||||||
@@ -80,6 +81,14 @@ namespace GWMS.UI
|
|||||||
// https://github.com/ElmahCore/ElmahCore
|
// https://github.com/ElmahCore/ElmahCore
|
||||||
app.UseElmah();
|
app.UseElmah();
|
||||||
|
|
||||||
|
// fix forwarders
|
||||||
|
app.UseForwardedHeaders(new ForwardedHeadersOptions
|
||||||
|
{
|
||||||
|
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
|
||||||
|
});
|
||||||
|
|
||||||
|
app.UseAuthentication();
|
||||||
|
|
||||||
app.UseHttpsRedirection();
|
app.UseHttpsRedirection();
|
||||||
app.UseStaticFiles();
|
app.UseStaticFiles();
|
||||||
|
|
||||||
@@ -193,7 +202,8 @@ namespace GWMS.UI
|
|||||||
services.AddSingleton<IConfiguration>(Configuration);
|
services.AddSingleton<IConfiguration>(Configuration);
|
||||||
//services.AddTransient<Services.BlazorTimer>();
|
//services.AddTransient<Services.BlazorTimer>();
|
||||||
|
|
||||||
services.AddSingleton<GWMSDataService>();
|
//services.AddSingleton<GWMSDataService>();
|
||||||
|
services.AddScoped<GWMSDataService>();
|
||||||
services.AddScoped<MessageService>();
|
services.AddScoped<MessageService>();
|
||||||
|
|
||||||
#if false
|
#if false
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
"sKey": "M3T@n0"
|
"sKey": "M3T@n0"
|
||||||
},
|
},
|
||||||
"IntervalMin": 60,
|
"IntervalMin": 60,
|
||||||
"MaxLogRecord": 240,
|
"MaxLogRecord": 360,
|
||||||
"ZCodeUrl": "https://qrcode.steamware.net/",
|
"ZCodeUrl": "https://qrcode.steamware.net/",
|
||||||
"logo": "img/LogoPizzaferri.jpg"
|
"logo": "img/LogoPizzaferri.jpg"
|
||||||
}
|
}
|
||||||
@@ -15,7 +15,8 @@ display-4 {
|
|||||||
font-family: 'Lato', sans-serif;
|
font-family: 'Lato', sans-serif;
|
||||||
}
|
}
|
||||||
html,
|
html,
|
||||||
body {
|
body,
|
||||||
|
.textCondensed {
|
||||||
font-family: 'Roboto Condensed', sans-serif;
|
font-family: 'Roboto Condensed', sans-serif;
|
||||||
}
|
}
|
||||||
a,
|
a,
|
||||||
@@ -153,9 +154,12 @@ a,
|
|||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
color: #666;
|
color: #666;
|
||||||
}
|
}
|
||||||
@media (max-width: 992px) {
|
@media (max-width: 640px) {
|
||||||
.shortcuts .shortcut {
|
.shortcuts .shortcut {
|
||||||
min-width: 8rem;
|
min-width: 8rem;
|
||||||
min-height: 4rem;
|
min-height: 4rem;
|
||||||
}
|
}
|
||||||
|
body {
|
||||||
|
font-size: 0.8em;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -6,7 +6,7 @@ h1, h2, h3, h4, h5, h6, b, display-1, display-2, display-3, display-4 {
|
|||||||
font-family: 'Lato', sans-serif;
|
font-family: 'Lato', sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
html, body {
|
html, body, .textCondensed {
|
||||||
font-family: 'Roboto Condensed', sans-serif;
|
font-family: 'Roboto Condensed', sans-serif;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -168,9 +168,13 @@ a, .btn-link {
|
|||||||
color: #666;
|
color: #666;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (max-width: 992px) {
|
@media (max-width: 640px) {
|
||||||
.shortcuts .shortcut {
|
.shortcuts .shortcut {
|
||||||
min-width: @blSCut * 8;
|
min-width: @blSCut * 8;
|
||||||
min-height: @blSCut * 4;
|
min-height: @blSCut * 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-size: 0.8em;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Vendored
+1
-1
@@ -1 +1 @@
|
|||||||
@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');@import url('fonts.min.css');h1,h2,h3,h4,h5,h6,b,display-1,display-2,display-3,display-4{font-family:'Lato',sans-serif;}html,body{font-family:'Roboto Condensed',sans-serif;}a,.btn-link{color:#0366d6;}.btn-primary{color:#fff;background-color:#1b6ec2;border-color:#1861ac;}.content{padding-top:1.1rem;}.valid.modified:not([type=checkbox]){outline:1px solid #26b050;}.invalid{outline:1px solid #f00;}.validation-message{color:#f00;}#blazor-error-ui{background:#ffffe0;bottom:0;box-shadow:0 -1px 2px rgba(0,0,0,.2);display:none;left:0;padding:.6rem 1.25rem .7rem 1.25rem;position:fixed;width:100%;z-index:1000;}#blazor-error-ui .dismiss{cursor:pointer;position:absolute;right:.75rem;top:.5rem;}.shortcuts{text-align:center;}.shortcuts .shortcut-icon{font-size:2rem;}.shortcuts .shortcut{min-width:9rem;min-height:5rem;display:inline-block;padding:.66666667rem 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:.5rem;}.shortcuts .shortcut-sm{min-width:4.5rem;min-height:3rem;display:inline-block;padding:.25rem 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:.5rem;}.shortcuts .shortcut .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut-sm .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut-sm:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut-sm:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut:hover .shortcut-icon{color:#c93;}.shortcuts .shortcut-sm:hover .shortcut-icon{color:#666;}.shortcuts .shortcut-label{display:block;margin-top:.75em;font-weight:400;color:#666;}@media(max-width:992px){.shortcuts .shortcut{min-width:8rem;min-height:4rem;}}
|
@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');@import url('fonts.min.css');h1,h2,h3,h4,h5,h6,b,display-1,display-2,display-3,display-4{font-family:'Lato',sans-serif;}html,body,.textCondensed{font-family:'Roboto Condensed',sans-serif;}a,.btn-link{color:#0366d6;}.btn-primary{color:#fff;background-color:#1b6ec2;border-color:#1861ac;}.content{padding-top:1.1rem;}.valid.modified:not([type=checkbox]){outline:1px solid #26b050;}.invalid{outline:1px solid #f00;}.validation-message{color:#f00;}#blazor-error-ui{background:#ffffe0;bottom:0;box-shadow:0 -1px 2px rgba(0,0,0,.2);display:none;left:0;padding:.6rem 1.25rem .7rem 1.25rem;position:fixed;width:100%;z-index:1000;}#blazor-error-ui .dismiss{cursor:pointer;position:absolute;right:.75rem;top:.5rem;}.shortcuts{text-align:center;}.shortcuts .shortcut-icon{font-size:2rem;}.shortcuts .shortcut{min-width:9rem;min-height:5rem;display:inline-block;padding:.66666667rem 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:.5rem;}.shortcuts .shortcut-sm{min-width:4.5rem;min-height:3rem;display:inline-block;padding:.25rem 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:.5rem;}.shortcuts .shortcut .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut-sm .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut-sm:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut-sm:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut:hover .shortcut-icon{color:#c93;}.shortcuts .shortcut-sm:hover .shortcut-icon{color:#666;}.shortcuts .shortcut-label{display:block;margin-top:.75em;font-weight:400;color:#666;}@media(max-width:640px){.shortcuts .shortcut{min-width:8rem;min-height:4rem;}body{font-size:.8em;}}
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 35 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 41 KiB |
@@ -1,6 +1,6 @@
|
|||||||
<body>
|
<body>
|
||||||
<i>GWMS - Gas Warehouse Management System</i>
|
<i>GWMS - Gas Warehouse Management System</i>
|
||||||
<h4>Versione: 1.0.2108.1012</h4>
|
<h4>Versione: 1.0.2108.2410</h4>
|
||||||
<br /> Note di rilascio:
|
<br /> Note di rilascio:
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
1.0.2108.1012
|
1.0.2108.2410
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<item>
|
<item>
|
||||||
<version>1.0.2108.1012</version>
|
<version>1.0.2108.2410</version>
|
||||||
<url>http://nexus.steamware.net/repository/SWS/GWMS/stable/0/GWMS.UI.zip</url>
|
<url>http://nexus.steamware.net/repository/SWS/GWMS/stable/0/GWMS.UI.zip</url>
|
||||||
<changelog>http://nexus.steamware.net/repository/SWS/GWMS/stable/0/ChangeLog.html</changelog>
|
<changelog>http://nexus.steamware.net/repository/SWS/GWMS/stable/0/ChangeLog.html</changelog>
|
||||||
<mandatory>false</mandatory>
|
<mandatory>false</mandatory>
|
||||||
|
|||||||
Reference in New Issue
Block a user