234 lines
13 KiB
Plaintext
234 lines
13 KiB
Plaintext
@page "/ART"
|
|
|
|
@using MP.SPEC.Components
|
|
@using MP.SPEC.Data
|
|
|
|
<div class="card mb-5">
|
|
<div class="card-header table-primary">
|
|
<div class="d-flex justify-content-between">
|
|
<div class="px-0">
|
|
<div class="d-flex justify-content-between">
|
|
<div class="px-2">
|
|
<h3>Articoli </h3>
|
|
</div>
|
|
<div class="px-2">
|
|
@if (CanAdd)
|
|
{
|
|
<button class="btn btn-success" @onclick="AddNew">Nuovo <i class="bi bi-plus-square"></i></button>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="px-0 align-content-center">
|
|
<div class="input-group">
|
|
<span class="input-group-text"><i class="fa fa-rectangle-list"></i></span>
|
|
<select @bind="@selTipoArt" class="form-select form-select-sm" style="width: 8rem; flex: 0 0 auto;" title="Selezionare il tipo di Articolo da mostrare" @bind:after="ResetDataAsync">
|
|
<option value="*">--- Tutti ---</option>
|
|
@if (ListTipoArt != null)
|
|
{
|
|
foreach (var item in ListTipoArt)
|
|
{
|
|
<option value="@item.value">@item.label</option>
|
|
}
|
|
}
|
|
</select>
|
|
<span class="input-group-text"><i class="fa fa-search"></i></span>
|
|
<input type="text" class="form-control form-control-sm" placeholder="Cerca (3+ char)" aria-label="Ricerca" title="Ricerca (3+ char)" @bind="@SearchVal" @bind:after="ResetDataAsync">
|
|
<button class="btn @searchCss" @onclick="() => ResetSearch()"><i class="fa fa-ban"></i></button>
|
|
<label class="input-group-text" for="maxRecord" title="Selezionare l'azienda da visualizzare"><i class="fa-solid fa-industry"></i></label>
|
|
<select @bind="@selAzienda" class="form-select form-select-sm" style="width: 15rem; flex: 0 0 auto;" title="Selezionare l'azienda da visualizzare" @bind:after="ReloadAziendaAsync">
|
|
@if (ListAziende != null)
|
|
{
|
|
foreach (var item in ListAziende)
|
|
{
|
|
<option value="@item.CodGruppo">@item.DescrGruppo</option>
|
|
}
|
|
}
|
|
</select>
|
|
<span class="input-group-text"><i class="fa fa-database"></i></span>
|
|
<input type="number" inputmode="numeric" min="10" max="100000" class="form-control form-control-sm text-end" style="width: 6rem; flex: 0 0 auto;" aria-label="Num record" title="Num massimo record da recuperare" @bind="@maxNumRecord" @bind:after="ReloadDataAsync">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@if (currRecord != null)
|
|
{
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<div class="card mb-0">
|
|
<div class="card-header bg-primary text-light">Modifica</div>
|
|
<div class="card-body">
|
|
<div class="row">
|
|
<div class="col-3">
|
|
<div class="input-group">
|
|
<span class="input-group-text">Codice</span>
|
|
@if (isNewArt)
|
|
{
|
|
<input type="text" class="form-control" placeholder="Articolo" @bind-value="@currRecord.CodArticolo">
|
|
}
|
|
else
|
|
{
|
|
<input type="text" class="form-control" disabled placeholder="Articolo" @bind-value="@currRecord.CodArticolo">
|
|
}
|
|
</div>
|
|
</div>
|
|
<div class="col-5">
|
|
<div class="input-group">
|
|
<span class="input-group-text">Disegno</span>
|
|
<input type="text" class="form-control" placeholder="Disegno" @bind-value="@currRecord.Disegno">
|
|
</div>
|
|
</div>
|
|
<div class="col-4">
|
|
<div class="input-group" title="Azienda">
|
|
<span class="input-group-text">Azienda</span>
|
|
<select @bind="@currRecord.Azienda" class="form-select text-end">
|
|
@if (ListAziende != null)
|
|
{
|
|
foreach (var item in ListAziende.Where(x => x.CodGruppo != "*").ToList())
|
|
{
|
|
<option value="@item.CodGruppo">@item.DescrGruppo</option>
|
|
}
|
|
}
|
|
</select>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="row mt-2">
|
|
<div class="col-3">
|
|
<div class="input-group" title="Tipo">
|
|
<span class="input-group-text">Tipo</span>
|
|
@if (currRecord.Tipo.Equals("KIT"))
|
|
{
|
|
<select @bind="@currRecord.Tipo" class="form-select text-end" disabled>
|
|
@if (ListTipoArt != null)
|
|
{
|
|
foreach (var item in ListTipoArt)
|
|
{
|
|
<option value="@item.value">@item.label</option>
|
|
}
|
|
}
|
|
</select>
|
|
}
|
|
else
|
|
{
|
|
<select @bind="@currRecord.Tipo" class="form-select text-end">
|
|
@if (ListTipoArt != null)
|
|
{
|
|
foreach (var item in ListTipoArt)
|
|
{
|
|
<option value="@item.value">@item.label</option>
|
|
}
|
|
}
|
|
</select>
|
|
}
|
|
|
|
</div>
|
|
</div>
|
|
<div class="col-5">
|
|
<div class="input-group">
|
|
<span class="input-group-text">Descrizione</span>
|
|
<input type="text" class="form-control" placeholder="Descrizione Articolo" @bind-value="@currRecord.DescArticolo">
|
|
</div>
|
|
</div>
|
|
<div class="col-2">
|
|
<div class="d-grid gap-2">
|
|
<button class="btn btn-warning" @onclick="() => ResetDataAsync()">Annulla <i class="bi bi-x-circle"></i></button>
|
|
</div>
|
|
</div>
|
|
<div class="col-2">
|
|
<div class="d-grid gap-2">
|
|
<button class="btn btn-success" @onclick="() => UpdateAsync(currRecord)">Salva <i class="bi bi-save"></i></button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@*<div class="card-footer">Footer</div>*@
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
</div>
|
|
<div class="card-body">
|
|
|
|
@if (ListRecords == null || isLoading)
|
|
{
|
|
<LoadingData></LoadingData>
|
|
}
|
|
else if (totalCount == 0)
|
|
{
|
|
<div class="alert alert-warning text-center display-4">Nessun record trovato</div>
|
|
}
|
|
else
|
|
{
|
|
<div class="row">
|
|
<div class="col-12">
|
|
<table class="table table-sm table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>
|
|
@if (currRecord != null)
|
|
{
|
|
<button @onclick="() => resetSel()" class="btn btn-primary btn-sm"><i class="bi bi-arrow-counterclockwise"></i></button>
|
|
}
|
|
</th>
|
|
<th><i class="fa-solid fa-file"></i> Articolo</th>
|
|
<th><i class="fa-solid fa-compass-drafting"></i> Disegno</th>
|
|
<th><i class="fa-solid fa-file-word"></i> Descrizione</th>
|
|
<th><i class="fa-solid fa-rectangle-list"></i> Tipo</th>
|
|
<th><i class="fa-solid fa-industry"></i> Azienda</th>
|
|
<th></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach (var record in ListRecords)
|
|
{
|
|
<tr class="@CheckSelect(@record.CodArticolo)">
|
|
<td>
|
|
<button @onclick="() => selRecord(record)" class="btn btn-primary btn-sm me-1" title="Modifica Record"><i class="bi bi-pencil-square"></i></button>
|
|
@if (record.Tipo.Equals("KIT"))
|
|
{
|
|
<button class="btn btn-secondary btn-sm disabled" title="Veto duplicazione KIT"><i class="bi bi-clipboard-check"></i></button>
|
|
}
|
|
else
|
|
{
|
|
<button @onclick="() => cloneRecord(record)" class="btn btn-info btn-sm" title="Duplica Record"><i class="bi bi-clipboard-check"></i></button>
|
|
}
|
|
</td>
|
|
<td>
|
|
<div>@record.CodArticolo</div>
|
|
</td>
|
|
<td>
|
|
<div class="small">@record.Disegno</div>
|
|
</td>
|
|
<td>
|
|
<div class="small">@record.DescArticolo</div>
|
|
</td>
|
|
<td>
|
|
<div>@record.Tipo</div>
|
|
</td>
|
|
<td>@record.Azienda</td>
|
|
<td>
|
|
@if (ArticoloDelEnabled(record))
|
|
{
|
|
<button @onclick="() => deleteRecord(record)" class="btn btn-danger btn-sm"><i class="bi bi-trash-fill"></i></button>
|
|
}
|
|
else
|
|
{
|
|
<button class="btn btn-secondary disabled btn-sm"><i class="bi bi-trash-fill"></i></button>
|
|
}
|
|
</td>
|
|
</tr>
|
|
}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
}
|
|
</div>
|
|
<div class="card-footer py-1">
|
|
@if (totalCount > numRecord)
|
|
{
|
|
<DataPager PageSize="numRecord" currPage="currPage" numRecordChanged="ForceReload" numPageChanged="ForceReloadPage" totalCount="totalCount" showLoading="isLoading" />
|
|
}
|
|
</div>
|
|
</div> |