Modificata interfaccia pagina offerta
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Version>1.1.2606.0818</Version>
|
||||
<Version>1.1.2606.0909</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -85,13 +85,13 @@
|
||||
</div>
|
||||
@if (HasChanged() || ForceMode)
|
||||
{
|
||||
<div class="col-6">
|
||||
<div class="col-8">
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<button class="btn btn-lg btn-success w-100" @onclick="DoSave"><i class="fa-solid fa-floppy-disk"></i> @Traduci("salva")</button>
|
||||
<div class="col-2">
|
||||
<button class="btn btn-lg btn-success w-100 shadow-sm rounded-4 px-3" @onclick="DoSave"><i class="fa-solid fa-floppy-disk"></i> @Traduci("salva")</button>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<button class="btn btn-lg btn-warning w-100" @onclick="DoCancel"><i class="fa-solid fa-ban"></i> @Traduci("annulla")</button>
|
||||
<div class="col-2">
|
||||
<button class="btn btn-lg btn-warning w-100 shadow-sm rounded-4 px-3" @onclick="DoCancel"><i class="fa-solid fa-ban"></i> @Traduci("annulla")</button>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
<div class="row">
|
||||
@inherits BaseComp
|
||||
|
||||
<div class="row">
|
||||
@if (isLoading)
|
||||
{
|
||||
<LoadingData></LoadingData>
|
||||
@@ -24,13 +26,13 @@
|
||||
</div>
|
||||
@if (HasChanged())
|
||||
{
|
||||
<div class="col-6">
|
||||
<div class="col-8">
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<button class="btn btn-lg btn-success w-100" @onclick="DoSave"><i class="fa-solid fa-floppy-disk"></i> Save</button>
|
||||
<div class="col-2">
|
||||
<button class="btn btn-lg btn-success w-100 shadow-sm rounded-4 px-3" @onclick="DoSave"><i class="fa-solid fa-floppy-disk"></i> @Traduci("salva")</button>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<button class="btn btn-lg btn-warning w-100" @onclick="DoCancel"><i class="fa-solid fa-ban"></i> Cancel</button>
|
||||
<div class="col-2">
|
||||
<button class="btn btn-lg btn-warning w-100 shadow-sm rounded-4 px-3" @onclick="DoCancel"><i class="fa-solid fa-ban"></i> @Traduci("annulla")</button>
|
||||
</div>
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
@using EgwCoreLib.Lux.Core
|
||||
@inherits BaseComp
|
||||
@inherits BaseComp
|
||||
|
||||
<div class="row">
|
||||
<div class="col-3">
|
||||
@@ -63,13 +62,13 @@
|
||||
</div>
|
||||
@if (HasChanged() && IsValid())
|
||||
{
|
||||
<div class="col-6">
|
||||
<div class="col-8">
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<button class="btn btn-lg btn-success w-100" @onclick="DoSave"><i class="fa-solid fa-floppy-disk"></i> @Traduci("salva")</button>
|
||||
<div class="col-2">
|
||||
<button class="btn btn-lg btn-success w-100 shadow-sm rounded-4 px-3" @onclick="DoSave"><i class="fa-solid fa-floppy-disk"></i> @Traduci("salva")</button>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<button class="btn btn-lg btn-warning w-100" @onclick="DoCancel"><i class="fa-solid fa-ban"></i> @Traduci("annulla")</button>
|
||||
<div class="col-2">
|
||||
<button class="btn btn-lg btn-warning w-100 shadow-sm rounded-4 px-3" @onclick="DoCancel"><i class="fa-solid fa-ban"></i> @Traduci("annulla")</button>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
@@ -4,10 +4,10 @@
|
||||
<div class="p-2 shadow rounded-2 border">
|
||||
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
<button class="btn btn-lg2 btn-success shadow-sm rounded-4 px-3" @onclick="DoAdd">
|
||||
<button class="btn btn-success shadow-sm rounded-4 px-3" @onclick="DoAdd">
|
||||
<i class="fa-solid fa-user me-1"></i> @Traduci("nuovo")
|
||||
</button>
|
||||
<div class="input-group input-group rounded-2 border-2 shadow-sm" style="width:20em;" title="@Traduci("ricerca")">
|
||||
<div class="input-group rounded-2 border-2 shadow-sm" style="width:20em;" title="@Traduci("ricerca")">
|
||||
<span class="input-group-text"><i class="fas fa-search"></i></span>
|
||||
<input type="text" class="form-control" accesskey="/" placeholder="Cerca [/] (3+ char)" @bind="@SearchVal">
|
||||
<button class="btn @btnResetCss" @onclick="ResetSearch"><i class="fas fa-ban"></i></button>
|
||||
|
||||
@@ -3,53 +3,43 @@
|
||||
|
||||
@if (EditRecord != null)
|
||||
{
|
||||
<div class="card shadow">
|
||||
<div class="card-header">
|
||||
<div class="card-title mb-0">
|
||||
<div class="d-flex justify-content-between align-items-center fs-4">
|
||||
<div class="px-0 fs-3">
|
||||
<b>@EditRecord.OfferCode</b>
|
||||
</div>
|
||||
<div class="px-4">
|
||||
<div class="d-flex">
|
||||
<div class="px-0 row">
|
||||
<div class="col px-0">
|
||||
<span @onclick="() => AdvStep(Enums.CompileStep.Header)">
|
||||
<StepArrow ObjId="1" StepText="@Traduci("offerta_testata")" BlockStyle="@(ArrowBackCol(Enums.CompileStep.Header))" StrokeWidth="4" ObjW="360" ObjH="60" StrokeColors="@listBord01" TipAngle="90" TextStyle="@txtStyle"></StepArrow>
|
||||
</span>
|
||||
</div>
|
||||
<div class="col px-0">
|
||||
<span @onclick="() => AdvStep(Enums.CompileStep.General)">
|
||||
<StepArrow ObjId="2" StepText="@Traduci("offerta_generale")" BlockStyle="@(ArrowBackCol(Enums.CompileStep.General))" StrokeWidth="4" ObjW="360" ObjH="60" StrokeColors="@listBord01" TipAngle="90" TextStyle="@txtStyle"></StepArrow>
|
||||
</span>
|
||||
</div>
|
||||
<div class="col px-0">
|
||||
<span @onclick="() => AdvStep(Enums.CompileStep.Rows)">
|
||||
<StepArrow ObjId="3" StepText="@Traduci("offerta_righe")" BlockStyle="@(ArrowBackCol(Enums.CompileStep.Rows))" StrokeWidth="4" ObjW="360" ObjH="60" StrokeColors="@listBord01" TipAngle="90" TextStyle="@txtStyle"></StepArrow>
|
||||
</span>
|
||||
</div>
|
||||
<div class="col px-0">
|
||||
<span @onclick="() => AdvStep(Enums.CompileStep.Delivery)">
|
||||
<StepArrow ObjId="4" StepText="@Traduci("offerta_consegna")" BlockStyle="@(ArrowBackCol(Enums.CompileStep.Delivery))" StrokeWidth="4" ObjW="360" ObjH="60" StrokeColors="@listBord01" TipAngle="90" TextStyle="@txtStyle"></StepArrow>
|
||||
</span>
|
||||
</div>
|
||||
@* <div class="col px-0">
|
||||
<span @onclick="() => AdvStep(Enums.CompileStep.FinalCheck)">
|
||||
<StepArrow ObjId="5" StepText="Controlli" BlockStyle="@(ArrowBackCol(Enums.CompileStep.FinalCheck))" StrokeWidth="4" ObjW="360" ObjH="60" StrokeColors="@listBord01" TipAngle="90" TextStyle="@txtStyle"></StepArrow>
|
||||
</span>
|
||||
</div> *@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="px-0">
|
||||
<button type="button" class="btn-close" data-bs-dismiss="card" aria-label="Close" title="Close" @onclick="() => DoEsc()">
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-2 shadow rounded-2 border">
|
||||
<div class="d-flex fs-4 align-items-center justify-content-between">
|
||||
<div class="px-1 fs-3">
|
||||
<b>@EditRecord.OfferCode</b>
|
||||
</div>
|
||||
<div class="px-0 row">
|
||||
<div class="col px-0">
|
||||
<span @onclick="() => AdvStep(Enums.CompileStep.Header)">
|
||||
<StepArrow ObjId="1" StepText="@Traduci("offerta_testata")" BlockStyle="@(ArrowBackCol(Enums.CompileStep.Header))" StrokeWidth="4" ObjW="360" ObjH="60" StrokeColors="@listBord01" TipAngle="90" TextStyle="@txtStyle"></StepArrow>
|
||||
</span>
|
||||
</div>
|
||||
<div class="col px-0">
|
||||
<span @onclick="() => AdvStep(Enums.CompileStep.General)">
|
||||
<StepArrow ObjId="2" StepText="@Traduci("offerta_generale")" BlockStyle="@(ArrowBackCol(Enums.CompileStep.General))" StrokeWidth="4" ObjW="360" ObjH="60" StrokeColors="@listBord01" TipAngle="90" TextStyle="@txtStyle"></StepArrow>
|
||||
</span>
|
||||
</div>
|
||||
<div class="col px-0">
|
||||
<span @onclick="() => AdvStep(Enums.CompileStep.Rows)">
|
||||
<StepArrow ObjId="3" StepText="@Traduci("offerta_righe")" BlockStyle="@(ArrowBackCol(Enums.CompileStep.Rows))" StrokeWidth="4" ObjW="360" ObjH="60" StrokeColors="@listBord01" TipAngle="90" TextStyle="@txtStyle"></StepArrow>
|
||||
</span>
|
||||
</div>
|
||||
<div class="col px-0">
|
||||
<span @onclick="() => AdvStep(Enums.CompileStep.Delivery)">
|
||||
<StepArrow ObjId="4" StepText="@Traduci("offerta_consegna")" BlockStyle="@(ArrowBackCol(Enums.CompileStep.Delivery))" StrokeWidth="4" ObjW="360" ObjH="60" StrokeColors="@listBord01" TipAngle="90" TextStyle="@txtStyle"></StepArrow>
|
||||
</span>
|
||||
</div>
|
||||
@* <div class="col px-0">
|
||||
<span @onclick="() => AdvStep(Enums.CompileStep.FinalCheck)">
|
||||
<StepArrow ObjId="5" StepText="Controlli" BlockStyle="@(ArrowBackCol(Enums.CompileStep.FinalCheck))" StrokeWidth="4" ObjW="360" ObjH="60" StrokeColors="@listBord01" TipAngle="90" TextStyle="@txtStyle"></StepArrow>
|
||||
</span>
|
||||
</div> *@
|
||||
</div>
|
||||
<button type="button" class="btn-close shadow-sm rounded-4 px-3" data-bs-dismiss="card" aria-label="Close" title="@Traduci("chiudi")" @onclick="() => DoEsc()">
|
||||
</button>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
||||
<div class="my-2 py-1 rounded-2 border-2">
|
||||
@if (currStep == Enums.CompileStep.Header)
|
||||
{
|
||||
<OfferMan CurrRecord="EditRecord" EC_Cancel="DoCancel" EC_Updated="DoSave" EC_Changed="SetDirty"></OfferMan>
|
||||
@@ -99,192 +89,188 @@ else
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<div class="card shadow">
|
||||
<div class="card-header">
|
||||
<div class=" d-flex justify-content-between">
|
||||
<div class="px-0 fs-3">
|
||||
<b>@Traduci("navMan_offerte")</b>
|
||||
<button class="btn btn-success" @onclick="DoAdd"><i class="fa-solid fa-cart-plus"></i> @Traduci("nuova")</button>
|
||||
<a href="@NavigationManager.ToAbsoluteUri("OffStats")" class="btn btn-primary">
|
||||
<i class="fa-solid fa-chart-area"></i>
|
||||
@Traduci("offerta_stats")
|
||||
</a>
|
||||
</div>
|
||||
<div class="px-0">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="px-1">
|
||||
<div class="input-group">
|
||||
<label class="input-group-text bg-opacity-50">@Traduci("stato")</label>
|
||||
<select class="form-select form-select-sm" @bind="@FiltState">
|
||||
<option value="">-- @Traduci("tutti") --</option>
|
||||
@foreach (var item in Enum.GetNames(typeof(Enums.OfferStates)))
|
||||
{
|
||||
<option value="@item">@Traduci("offerta_" + item.ToString().ToLower())</option>
|
||||
}
|
||||
</select>
|
||||
|
||||
<input type="text" class="form-control" placeholder="ctrl-/" accesskey="/">
|
||||
<button class="btn btn-outline-secondary" type="button"><i class="fa-solid fa-rotate-right"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="px-1">
|
||||
<PeriodoSel E_PeriodoSel="SetPeriodo" CurrPeriodo="PeriodoSel"></PeriodoSel>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="p-2 shadow rounded-2 border">
|
||||
<div class="d-flex align-items-center justify-content-between">
|
||||
<div class="px-0">
|
||||
<button class="btn btn-success shadow-sm rounded-4 px-3" @onclick="DoAdd">
|
||||
<i class="fa-solid fa-cart-plus"></i> @Traduci("nuova")
|
||||
</button>
|
||||
<a href="@NavigationManager.ToAbsoluteUri("OffStats")" class="btn btn-primary shadow-sm rounded-4 px-3">
|
||||
<i class="fa-solid fa-chart-area"></i>
|
||||
@Traduci("offerta_stats")
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
@if (isLoading)
|
||||
{
|
||||
<LoadingData></LoadingData>
|
||||
}
|
||||
else if (totalCount == 0)
|
||||
{
|
||||
<div class="alert alert-info text-center display-4">@Traduci("noRecord")</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="row">
|
||||
<div class="@DivMainCss">
|
||||
<table class="table table-sm table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
<button class="btn btn-sm btn-primary" title="Reset selezione" @onclick="() => DoReset()"><i class="fa-solid fa-arrow-rotate-right"></i></button>
|
||||
</th>
|
||||
@if (SelRecord == null)
|
||||
{
|
||||
<th>@Traduci("id")</th>
|
||||
}
|
||||
<th>@Traduci("data")</th>
|
||||
@if (SelRecord == null)
|
||||
{
|
||||
<th>@Traduci("stato")</th>
|
||||
}
|
||||
<th>@Traduci("codice")</th>
|
||||
<th>@Traduci("venditore")</th>
|
||||
<th>@Traduci("cliente")</th>
|
||||
@if (SelRecord == null)
|
||||
{
|
||||
<th>@Traduci("descrizione")</th>
|
||||
<th class="text-end" title="# Righe"><i class="fa-solid fa-list"></i></th>
|
||||
<th class="text-end" title="# Articoli"><i class="fa-regular fa-file-lines"></i></th>
|
||||
<th class="text-end" title="# Componenti Ordine"><i class="fa-solid fa-folder-tree"></i></th>
|
||||
}
|
||||
<th class="text-end">@Traduci("importo")</th>
|
||||
@if (SelRecord == null)
|
||||
{
|
||||
<th class="text-end">@Traduci("margine")</th>
|
||||
}
|
||||
<th class="text-end"> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var item in ListRecords)
|
||||
{
|
||||
<tr class="@CheckSelect(item)">
|
||||
<td>
|
||||
<button class="btn btn-sm btn-primary" @onclick="() => DoSelect(item)"><i class="fa-solid fa-magnifying-glass"></i></button>
|
||||
<button class="btn btn-sm btn-info" @onclick="() => DoEdit(item)"><i class="fa-solid fa-pencil"></i></button>
|
||||
<button class="btn btn-sm btn-warning" @onclick="() => DoClone(item)" title="Duplica Offerta"><i class="fa-solid fa-wand-magic"></i></button>
|
||||
</td>
|
||||
@if (SelRecord == null)
|
||||
{
|
||||
<td>@item.OfferID</td>
|
||||
}
|
||||
<td>
|
||||
<div class="small" title="Inserita"><i class="fa-solid fa-circle"></i> @($"{item.Inserted:yyyy-MM-dd}")</div>
|
||||
<div class="small text-secondary" title="Scadenza"><i class="fa-solid fa-hourglass-half"></i> @($"{item.ValidUntil:yyyy-MM-dd}")</div>
|
||||
</td>
|
||||
@if (SelRecord == null)
|
||||
{
|
||||
<td>
|
||||
<button class="btn btn-sm bg-@ButtonStateCss(item) bg-gradient bg-opacity-25 text-dark rounded-pill" @onclick="() => EditState(item)">
|
||||
@Traduci("offerta_" + @item.OffertState.ToString().ToLower())
|
||||
</button>
|
||||
</td>
|
||||
}
|
||||
<td>
|
||||
@item.OfferCode
|
||||
<div class="small text-secondary">@item.Envir</div>
|
||||
</td>
|
||||
<td>
|
||||
@if (item.DealerNav != null)
|
||||
{
|
||||
<div class=""><b>@item.DealerNav.FirstName</b> @item.DealerNav.LastName</div>
|
||||
<div class="small">@item.DealerNav.VAT</div>
|
||||
}
|
||||
</td>
|
||||
<td>
|
||||
@if (item.CustomerNav != null)
|
||||
{
|
||||
<div class=""><b>@item.CustomerNav.FirstName</b> @item.CustomerNav.LastName</div>
|
||||
<div class="small">@item.CustomerNav.VAT</div>
|
||||
}
|
||||
</td>
|
||||
@if (SelRecord == null)
|
||||
{
|
||||
<td>@item.Description</td>
|
||||
<td class="text-end">
|
||||
@item.NumRows
|
||||
</td>
|
||||
<td class="text-end">
|
||||
@item.NumItems
|
||||
</td>
|
||||
<td class="text-end">
|
||||
@item.NumProdItems
|
||||
</td>
|
||||
}
|
||||
<td class="text-end">
|
||||
<div class="fw-bold" title="Prezzo Finito">@item.TotalPrice.ToString("C2")</div>
|
||||
<div class="small text-secondary" title="RockBottom Price">(@item.TotalCost.ToString("C2"))</div>
|
||||
</td>@if (SelRecord == null)
|
||||
{
|
||||
<td class="text-end" title="Margine / Sconto MAX applicabile">
|
||||
@item.MaxDiscount.ToString("P2")
|
||||
</td>
|
||||
}
|
||||
<td class="text-center">
|
||||
<div class="btn-group" role="group" >
|
||||
<a href="@(DownloadUrl(item.OfferID))" target="_blank" title="Stampa" class="btn btn-sm btn-primary">
|
||||
<i class="fa-solid fa-print"></i>
|
||||
</a>
|
||||
@if (SelRecord == null)
|
||||
{
|
||||
<button class="btn btn-sm btn-primary" title="Scegli template" @onclick="() => SelectOptPrint(item.OfferID)">
|
||||
<i class="fa-solid fa-chevron-down small"></i>
|
||||
</button>
|
||||
}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
@if (totalCount > numRecord)
|
||||
{
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="15">
|
||||
<EgwCoreLib.Razor.DataPager currPage="@currPage" PageSize="@numRecord" totalCount="@totalCount" numPageChanged="SavePage" numRecordChanged="SaveNumRec"></EgwCoreLib.Razor.DataPager>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
}
|
||||
</table>
|
||||
|
||||
</div>
|
||||
@if (SelRecord != null)
|
||||
<div class="d-flex align-items-center px-0 gap-2">
|
||||
<div class="input-group rounded-2 border-2 shadow-sm">
|
||||
<label class="input-group-text bg-opacity-50 px-2">@Traduci("stato")</label>
|
||||
<select class="form-select form-select-sm px-2" @bind="@FiltState">
|
||||
<option value="">-- @Traduci("tutti") --</option>
|
||||
@foreach (var item in Enum.GetNames(typeof(Enums.OfferStates)))
|
||||
{
|
||||
<div class="col-6">
|
||||
<OfferRowMan CurrRecord="@SelRecord" DisplayMode="EgwCoreLib.Lux.Core.Enums.DisplayMode.Preview" EC_Updated="() => ForceReload()" EC_Action="DoAction"></OfferRowMan>
|
||||
</div>
|
||||
<option value="@item">@Traduci("offerta_" + item.ToString().ToLower())</option>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
</select>
|
||||
</div>
|
||||
<div class="input-group rounded-2 border-2 shadow-sm" title="@Traduci("ricerca")">
|
||||
<span class="input-group-text"><i class="fas fa-search"></i></span>
|
||||
<input type="text" class="form-control px-2" accesskey="/" placeholder="Cerca [/] (3+ char)" @bind="@SearchVal">
|
||||
<button class="btn @btnResetCss" @onclick="ResetSearch"><i class="fas fa-ban"></i></button>
|
||||
</div>
|
||||
<PeriodoSel E_PeriodoSel="SetPeriodo" CurrPeriodo="PeriodoSel"></PeriodoSel>
|
||||
</div>
|
||||
</div>
|
||||
<div class="my-2 py-1 shadow shadow-sm rounded-2 border-2">
|
||||
@if (isLoading)
|
||||
{
|
||||
<LoadingData></LoadingData>
|
||||
}
|
||||
else if (totalCount == 0)
|
||||
{
|
||||
<div class="alert alert-info text-center display-4">@Traduci("noRecord")</div>
|
||||
}
|
||||
else
|
||||
{
|
||||
<div class="row">
|
||||
<div class="@DivMainCss">
|
||||
<table class="table table-sm table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>
|
||||
<button class="btn btn-sm btn-primary" title="Reset selezione" @onclick="() => DoReset()"><i class="fa-solid fa-arrow-rotate-right"></i></button>
|
||||
</th>
|
||||
@if (SelRecord == null)
|
||||
{
|
||||
<th>@Traduci("id")</th>
|
||||
}
|
||||
<th>@Traduci("data")</th>
|
||||
@if (SelRecord == null)
|
||||
{
|
||||
<th>@Traduci("stato")</th>
|
||||
}
|
||||
<th>@Traduci("codice")</th>
|
||||
<th>@Traduci("venditore")</th>
|
||||
<th>@Traduci("cliente")</th>
|
||||
@if (SelRecord == null)
|
||||
{
|
||||
<th>@Traduci("descrizione")</th>
|
||||
<th class="text-end" title="# Righe"><i class="fa-solid fa-list"></i></th>
|
||||
<th class="text-end" title="# Articoli"><i class="fa-regular fa-file-lines"></i></th>
|
||||
<th class="text-end" title="# Componenti Ordine"><i class="fa-solid fa-folder-tree"></i></th>
|
||||
}
|
||||
<th class="text-end">@Traduci("importo")</th>
|
||||
@if (SelRecord == null)
|
||||
{
|
||||
<th class="text-end">@Traduci("margine")</th>
|
||||
}
|
||||
<th class="text-end"> </th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@foreach (var item in ListRecords)
|
||||
{
|
||||
<tr class="@CheckSelect(item)">
|
||||
<td>
|
||||
<button class="btn btn-sm btn-primary" @onclick="() => DoSelect(item)"><i class="fa-solid fa-magnifying-glass"></i></button>
|
||||
<button class="btn btn-sm btn-info" @onclick="() => DoEdit(item)"><i class="fa-solid fa-pencil"></i></button>
|
||||
<button class="btn btn-sm btn-warning" @onclick="() => DoClone(item)" title="Duplica Offerta"><i class="fa-solid fa-wand-magic"></i></button>
|
||||
</td>
|
||||
@if (SelRecord == null)
|
||||
{
|
||||
<td>@item.OfferID</td>
|
||||
}
|
||||
<td>
|
||||
<div class="small" title="Inserita"><i class="fa-solid fa-circle"></i> @($"{item.Inserted:yyyy-MM-dd}")</div>
|
||||
<div class="small text-secondary" title="Scadenza"><i class="fa-solid fa-hourglass-half"></i> @($"{item.ValidUntil:yyyy-MM-dd}")</div>
|
||||
</td>
|
||||
@if (SelRecord == null)
|
||||
{
|
||||
<td>
|
||||
<button class="btn btn-sm bg-@ButtonStateCss(item) bg-gradient bg-opacity-25 text-dark rounded-pill" @onclick="() => EditState(item)">
|
||||
@Traduci("offerta_" + @item.OffertState.ToString().ToLower())
|
||||
</button>
|
||||
</td>
|
||||
}
|
||||
<td>
|
||||
@item.OfferCode
|
||||
<div class="small text-secondary">@item.Envir</div>
|
||||
</td>
|
||||
<td>
|
||||
@if (item.DealerNav != null)
|
||||
{
|
||||
<div class=""><b>@item.DealerNav.FirstName</b> @item.DealerNav.LastName</div>
|
||||
<div class="small">@item.DealerNav.VAT</div>
|
||||
}
|
||||
</td>
|
||||
<td>
|
||||
@if (item.CustomerNav != null)
|
||||
{
|
||||
<div class=""><b>@item.CustomerNav.FirstName</b> @item.CustomerNav.LastName</div>
|
||||
<div class="small">@item.CustomerNav.VAT</div>
|
||||
}
|
||||
</td>
|
||||
@if (SelRecord == null)
|
||||
{
|
||||
<td>@item.Description</td>
|
||||
<td class="text-end">
|
||||
@item.NumRows
|
||||
</td>
|
||||
<td class="text-end">
|
||||
@item.NumItems
|
||||
</td>
|
||||
<td class="text-end">
|
||||
@item.NumProdItems
|
||||
</td>
|
||||
}
|
||||
<td class="text-end">
|
||||
<div class="fw-bold" title="Prezzo Finito">@item.TotalPrice.ToString("C2")</div>
|
||||
<div class="small text-secondary" title="RockBottom Price">(@item.TotalCost.ToString("C2"))</div>
|
||||
</td>@if (SelRecord == null)
|
||||
{
|
||||
<td class="text-end" title="Margine / Sconto MAX applicabile">
|
||||
@item.MaxDiscount.ToString("P2")
|
||||
</td>
|
||||
}
|
||||
<td class="text-center">
|
||||
<div class="btn-group" role="group" >
|
||||
<a href="@(DownloadUrl(item.OfferID))" target="_blank" title="Stampa" class="btn btn-sm btn-primary">
|
||||
<i class="fa-solid fa-print"></i>
|
||||
</a>
|
||||
@if (SelRecord == null)
|
||||
{
|
||||
<button class="btn btn-sm btn-primary" title="Scegli template" @onclick="() => SelectOptPrint(item.OfferID)">
|
||||
<i class="fa-solid fa-chevron-down small"></i>
|
||||
</button>
|
||||
}
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
}
|
||||
</tbody>
|
||||
@if (totalCount > numRecord)
|
||||
{
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="15">
|
||||
<EgwCoreLib.Razor.DataPager currPage="@currPage" PageSize="@numRecord" totalCount="@totalCount" numPageChanged="SavePage" numRecordChanged="SaveNumRec"></EgwCoreLib.Razor.DataPager>
|
||||
</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
}
|
||||
</table>
|
||||
|
||||
</div>
|
||||
@if (SelRecord != null)
|
||||
{
|
||||
<div class="col-6">
|
||||
<OfferRowMan CurrRecord="@SelRecord" DisplayMode="EgwCoreLib.Lux.Core.Enums.DisplayMode.Preview" EC_Updated="() => ForceReload()" EC_Action="DoAction"></OfferRowMan>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (selectOptPrint)
|
||||
{
|
||||
<PrintModal url="@apiUrl" currId="@currId" repType="Offerta" EC_Close="ClosePrintModal"></PrintModal>
|
||||
|
||||
@@ -91,7 +91,7 @@ namespace Lux.UI.Components.Pages
|
||||
|
||||
private List<OfferModel> ListRecords = new List<OfferModel>();
|
||||
|
||||
private List<CompileStep> ListtChanges = new();
|
||||
private List<CompileStep> ListChanges = new();
|
||||
private int numRecord = 10;
|
||||
|
||||
/// <summary>
|
||||
@@ -632,6 +632,30 @@ namespace Lux.UI.Components.Pages
|
||||
return ans;
|
||||
}
|
||||
|
||||
private string btnResetCss
|
||||
{
|
||||
get => string.IsNullOrEmpty(searchVal) ? "btn-outline-secondary" : "btn-primary";
|
||||
}
|
||||
|
||||
private void ResetSearch()
|
||||
{
|
||||
SearchVal = "";
|
||||
}
|
||||
|
||||
private string SearchVal
|
||||
{
|
||||
get => searchVal;
|
||||
set
|
||||
{
|
||||
if (searchVal != value)
|
||||
{
|
||||
searchVal = value;
|
||||
DoFilter();
|
||||
UpdateTable();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -607,9 +607,18 @@ namespace Lux.UI.Components.Pages
|
||||
|
||||
private void DoFilter()
|
||||
{
|
||||
ListEstimRecords = ListEstimRecordsAll.Where(x => FiltEnvir == null || x.Envir == FiltEnvir).ToList();
|
||||
ListBalancedRecords = ListBalancedRecordsAll.Where(x => FiltEnvir == null || x.OrderRowNav.Envir == FiltEnvir).ToList();
|
||||
ListOdl = ListOdlAll.Where(x => FiltEnvir == null || x.Envir == FiltEnvir).ToList();
|
||||
if (ListEstimRecordsAll != null && ListEstimRecordsAll.Count > 0)
|
||||
{
|
||||
ListEstimRecords = ListEstimRecordsAll.Where(x => FiltEnvir == null || x.Envir == FiltEnvir).ToList();
|
||||
}
|
||||
if (ListBalancedRecordsAll != null && ListBalancedRecordsAll.Count > 0)
|
||||
{
|
||||
ListBalancedRecords = ListBalancedRecordsAll.Where(x => FiltEnvir == null || x.OrderRowNav.Envir == FiltEnvir).ToList();
|
||||
}
|
||||
if (ListOdlAll != null && ListOdlAll.Count > 0)
|
||||
{
|
||||
ListOdl = ListOdlAll.Where(x => FiltEnvir == null || x.Envir == FiltEnvir).ToList();
|
||||
}
|
||||
|
||||
// if (ListEstimRecordsAll != null && ListEstimRecordsAll.Count > 0)
|
||||
// {
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<UserSecretsId>aspnet-Lux.UI-a758c101-a2f4-4e38-977d-1c4887dbbd50</UserSecretsId>
|
||||
<Version>1.1.2606.0818</Version>
|
||||
<Version>1.1.2606.0909</Version>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<body>
|
||||
<i>LUX - Web Windows MES</i>
|
||||
<h4>Versione: 1.1.2606.0818</h4>
|
||||
<h4>Versione: 1.1.2606.0909</h4>
|
||||
<br /> Note di rilascio:
|
||||
<ul>
|
||||
<li>
|
||||
|
||||
@@ -1 +1 @@
|
||||
1.1.2606.0818
|
||||
1.1.2606.0909
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<item>
|
||||
<version>1.1.2606.0818</version>
|
||||
<version>1.1.2606.0909</version>
|
||||
<url>http://nexus.steamware.net/repository/SWS/GPW/stable/GPW.UI.zip</url>
|
||||
<changelog>http://nexus.steamware.net/repository/SWS/GPW/stable/ChangeLog.html</changelog>
|
||||
<mandatory>false</mandatory>
|
||||
|
||||
Reference in New Issue
Block a user