Add spreadsheet-style home page, migrate full 2026 ledger
- New /lignes route (set as site front page): full line-by-line table of every ligne comptable, Vue app with filters (compte/client/type/année) and month/year grouping, columns matching the original spreadsheet (one per compte). Rows with répartition ≠ montant HT are visibly flagged (red row + écart column), not hidden or auto-corrected. - /dashboard now only holds the aggregate solde-par-compte/par-client view - Migrated all 199 real 2026 transaction lines + 9 opening balances (from REPORT CLOTURE 2025) via a drush import script, preserving raw source data (known répartition mismatches included) -- validated with a new state-flag bypass of the presave check, used only for historical import - Added "Autre" as an allowed field_type_ligne value for edge-case rows - Client taxonomy grew from 15 seeded terms to the full unified list Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,139 @@
|
||||
#figli-home-app {
|
||||
font-family: var(--gin-font-family, Inter, -apple-system, sans-serif);
|
||||
margin: 1rem 0;
|
||||
}
|
||||
|
||||
#figli-home-app .figli-toolbar {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
gap: 0.75rem 1.25rem;
|
||||
margin-bottom: 1rem;
|
||||
padding: 0.75rem 1rem;
|
||||
background: var(--gin-bg-layer, #f5f6f8);
|
||||
border: 1px solid var(--gin-border-color, #dcdee2);
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
#figli-home-app .figli-toolbar label {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
font-size: 0.75rem;
|
||||
font-weight: 600;
|
||||
color: var(--gin-color-text-light, #6b7280);
|
||||
gap: 0.15rem;
|
||||
}
|
||||
|
||||
#figli-home-app .figli-toolbar select {
|
||||
font-size: 0.85rem;
|
||||
padding: 0.2rem 0.4rem;
|
||||
}
|
||||
|
||||
#figli-home-app .figli-checkbox {
|
||||
flex-direction: row !important;
|
||||
align-items: center;
|
||||
gap: 0.35rem !important;
|
||||
}
|
||||
|
||||
#figli-home-app .figli-count {
|
||||
margin-left: auto;
|
||||
font-size: 0.8rem;
|
||||
color: var(--gin-color-text-light, #6b7280);
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#figli-home-app .figli-table-wrap {
|
||||
overflow-x: auto;
|
||||
border: 1px solid var(--gin-border-color, #dcdee2);
|
||||
border-radius: 6px;
|
||||
max-height: 75vh;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
#figli-home-app table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
background: var(--gin-bg-layer2, #fff);
|
||||
font-size: 0.8rem;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
#figli-home-app th,
|
||||
#figli-home-app td {
|
||||
text-align: left;
|
||||
padding: 0.3rem 0.6rem;
|
||||
border-bottom: 1px solid var(--gin-border-color, #eceef1);
|
||||
}
|
||||
|
||||
#figli-home-app thead th {
|
||||
position: sticky;
|
||||
top: 0;
|
||||
background: var(--gin-bg-layer, #f5f6f8);
|
||||
font-weight: 600;
|
||||
font-size: 0.72rem;
|
||||
text-transform: uppercase;
|
||||
letter-spacing: 0.02em;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
#figli-home-app td.amount,
|
||||
#figli-home-app th.amount {
|
||||
text-align: right;
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
#figli-home-app td.compte-col {
|
||||
color: #333;
|
||||
}
|
||||
|
||||
#figli-home-app td.figli-libelle {
|
||||
white-space: normal;
|
||||
min-width: 220px;
|
||||
max-width: 340px;
|
||||
}
|
||||
|
||||
#figli-home-app tr.figli-group-row td {
|
||||
background: var(--gin-bg-layer, #eef0f3);
|
||||
font-weight: 700;
|
||||
position: sticky;
|
||||
top: 2rem;
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
#figli-home-app tr.figli-error-row {
|
||||
background: #fdf1f1;
|
||||
}
|
||||
|
||||
#figli-home-app td.figli-ecart {
|
||||
color: #c9312b;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
#figli-home-app .figli-badge {
|
||||
display: inline-block;
|
||||
padding: 0.1rem 0.45rem;
|
||||
border-radius: 10px;
|
||||
font-size: 0.68rem;
|
||||
font-weight: 600;
|
||||
white-space: nowrap;
|
||||
}
|
||||
#figli-home-app .type-entree { background: #e2f5e9; color: #1a7f37; }
|
||||
#figli-home-app .type-charge { background: #eceef1; color: #4b5563; }
|
||||
#figli-home-app .type-versement { background: #fdeed6; color: #9a5b13; }
|
||||
#figli-home-app .type-achat { background: #e6eefc; color: #1d4ed8; }
|
||||
#figli-home-app .type-ouverture { background: #ede4fb; color: #6b21a8; }
|
||||
#figli-home-app .type-autre { background: #f1f1f1; color: #555; }
|
||||
|
||||
#figli-home-app .figli-note {
|
||||
color: var(--gin-color-text-light, #6b7280);
|
||||
font-weight: 400;
|
||||
font-size: 0.75rem;
|
||||
}
|
||||
|
||||
#figli-home-app .figli-error {
|
||||
background: #fde8e8;
|
||||
border: 1px solid #f4a3a3;
|
||||
color: #7a1a1a;
|
||||
padding: 0.75rem 1rem;
|
||||
border-radius: 6px;
|
||||
}
|
||||
Reference in New Issue
Block a user