85 lines
2.5 KiB
Plaintext
85 lines
2.5 KiB
Plaintext
@model IEnumerable<StockFin.Models.Stock>
|
|
|
|
@{
|
|
ViewData["Title"] = "Stocks";
|
|
var displayCulture = new System.Globalization.CultureInfo("fr-BE");
|
|
}
|
|
|
|
<div class="sf-page">
|
|
<section class="sf-page-hero is-dark">
|
|
<div>
|
|
<span class="sf-page-kicker">Marchés</span>
|
|
<h1 class="sf-page-title">Stocks</h1>
|
|
<p>Administrez vos instruments financiers et suivez leur prix courant dans une vue claire et cohérente.</p>
|
|
</div>
|
|
<div class="sf-page-actions">
|
|
<a asp-action="Create" class="sf-btn-secondary">
|
|
<i class="bi bi-plus-circle"></i>
|
|
<span>Nouveau titre</span>
|
|
</a>
|
|
<a asp-action="UpdateFromTradeRepublic" class="sf-btn-ghost">
|
|
<i class="bi bi-cloud-upload"></i>
|
|
<span>Importer Trade Republic</span>
|
|
</a>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="sf-content-card">
|
|
<div class="sf-card-header">
|
|
<div>
|
|
<h2>Catalogue des titres</h2>
|
|
<p>Conservez une référence propre de vos actions, ETF et autres instruments suivis.</p>
|
|
</div>
|
|
</div>
|
|
|
|
@if (Model.Any())
|
|
{
|
|
<div class="sf-table-wrapper table-responsive">
|
|
<table class="table sf-data-table align-middle">
|
|
<thead>
|
|
<tr>
|
|
<th>Title</th>
|
|
<th>ISIN</th>
|
|
<th>Ticker</th>
|
|
<th class="text-end">Cost</th>
|
|
<th class="text-end">Current Price</th>
|
|
<th class="text-end">Actions</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach (var item in Model)
|
|
{
|
|
<tr>
|
|
<td class="fw-semibold">@item.Title</td>
|
|
<td>@item.Isin</td>
|
|
<td>@item.Ticker</td>
|
|
<td class="text-end">@(item.Cost.HasValue ? item.Cost.Value.ToString("N2", displayCulture) : "")</td>
|
|
<td class="text-end fw-semibold">@(item.Ticker != null && ((Dictionary<string, double?>)ViewData["actuals"]).TryGetValue(item.Ticker, out var actual) ? actual.Value.ToString("N2", displayCulture) : "N/A")</td>
|
|
<td>
|
|
<div class="sf-table-actions">
|
|
<a asp-action="Edit" asp-route-id="@item.Id" class="sf-table-action is-edit">
|
|
<i class="bi bi-pencil-square"></i>
|
|
<span>Modifier</span>
|
|
</a>
|
|
<a asp-action="Delete" asp-route-id="@item.Id" class="sf-table-action is-delete">
|
|
<i class="bi bi-trash3"></i>
|
|
<span>Supprimer</span>
|
|
</a>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
}
|
|
else
|
|
{
|
|
<div class="sf-empty-card">
|
|
<h3>Aucun titre enregistré</h3>
|
|
<p>Créez un premier instrument ou importez vos données Trade Republic.</p>
|
|
</div>
|
|
}
|
|
</section>
|
|
</div>
|