Transaction Details now renders each voucher as a paired Dr/Cr journal entry with a derived contra account and a Balanced status chip, so both sides of a transaction are visible at a glance for reconciliation. Adds a shared cashier-export.ts (mirrors the Investment module's exporter) and an Export to Excel button producing a Summary + Transaction Details workbook, plus a Branch Breakup sheet for Head Office consolidated view.
139 lines
2.4 KiB
SCSS
139 lines
2.4 KiB
SCSS
/**
|
|
* Copyright since 2025 Mifos Initiative
|
|
*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
.cctr-tabs {
|
|
display: flex;
|
|
gap: 8px;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.cctr-total-row {
|
|
td {
|
|
background: #f1f5f9;
|
|
font-weight: 800;
|
|
border-top: 2px solid #cbd5e1;
|
|
border-bottom: none;
|
|
color: #0f172a;
|
|
}
|
|
}
|
|
|
|
.cctr-grand-summary {
|
|
display: flex;
|
|
background: #fff;
|
|
border: 1px solid #e2e8f0;
|
|
border-radius: 12px;
|
|
overflow: hidden;
|
|
|
|
&__item {
|
|
flex: 1;
|
|
padding: 14px 20px;
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: 4px;
|
|
border-right: 1px solid #e2e8f0;
|
|
|
|
&:last-child {
|
|
border-right: none;
|
|
}
|
|
}
|
|
|
|
&__label {
|
|
font-size: 10px;
|
|
font-weight: 700;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.07em;
|
|
color: #64748b;
|
|
}
|
|
|
|
&__value {
|
|
font-size: 20px;
|
|
font-weight: 800;
|
|
font-variant-numeric: tabular-nums;
|
|
color: #0f172a;
|
|
}
|
|
}
|
|
|
|
.cctr-subtext {
|
|
font-size: 11px;
|
|
color: #94a3b8;
|
|
margin-top: 2px;
|
|
}
|
|
|
|
.cctr-branch-row {
|
|
cursor: pointer;
|
|
|
|
&:hover td {
|
|
background: #eff6ff;
|
|
}
|
|
}
|
|
|
|
// Both journal lines of one voucher share a tint and sit flush against each other (no dotted
|
|
// divider between them) so the pair reads as a single entry; a hairline separates one voucher's
|
|
// pair from the next.
|
|
.cctr-journal-row {
|
|
&--first td {
|
|
border-bottom: none;
|
|
padding-bottom: 4px;
|
|
}
|
|
|
|
&--second td {
|
|
border-top: none;
|
|
padding-top: 4px;
|
|
border-bottom: 1px solid #e2e8f0;
|
|
}
|
|
|
|
&--first,
|
|
&--second {
|
|
&:hover td {
|
|
background: #f8fafc;
|
|
}
|
|
}
|
|
}
|
|
|
|
.cctr-drcr {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
min-width: 28px;
|
|
padding: 1px 8px;
|
|
border-radius: 6px;
|
|
font-size: 11px;
|
|
font-weight: 800;
|
|
letter-spacing: 0.03em;
|
|
|
|
&--dr {
|
|
background: #eff6ff;
|
|
color: #1d4ed8;
|
|
border: 1px solid #bfdbfe;
|
|
}
|
|
|
|
&--cr {
|
|
background: #f0fdf4;
|
|
color: #15803d;
|
|
border: 1px solid #bbf7d0;
|
|
}
|
|
}
|
|
|
|
.cctr-contra {
|
|
color: #64748b;
|
|
font-style: italic;
|
|
}
|
|
|
|
.cctr-balanced-chip {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
padding: 3px 10px;
|
|
border-radius: 999px;
|
|
font-size: 11px;
|
|
font-weight: 700;
|
|
background: #f0fdf4;
|
|
color: #15803d;
|
|
border: 1px solid #bbf7d0;
|
|
white-space: nowrap;
|
|
}
|