From f7d9259eb79afb77517d74e21bb834e305883e49 Mon Sep 17 00:00:00 2001 From: Jaanu423 Date: Mon, 8 Jun 2026 10:39:34 +0530 Subject: [PATCH] feat(cashier): add CBS Blue Warm Stone theme, validations, non-individual support, and custom alert modal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Replace table grid with ws-wrap card-form layout (Warm Stone / CBS Blue design) - Add day-status blocking banners (previousDayUnsettled, morningTransferReceived) - Add custom styled alert modal replacing browser alert() — error/warning/info/success types - Add Non-Individual Account Details section with Partners table (click-to-view signature/image) - Fix denomination overdraft inline alert in Closing Position panel - Fix bannedEntityMatch/willfulDefaulter false positive (DB stores YES/NO strings) - Fix denomination mismatch 403 — only send denomination when cash payment matches amount - Fix Today's Activity for CA accounts (m_current_account_transaction, remarks column, type=7 label) - Fix A/C TYPE [object Object] — map from acTyp label - Fix charge deduction sign — use transactionType.deposit instead of withdrawal - Remove Add Row buttons everywhere - CBS Blue theme variables: focus #2563eb, accent #e87722, Hanken Grotesk + Newsreader fonts Co-Authored-By: Claude Sonnet 4.6 --- .../transaction-entry.component.html | 356 ++++++++++-------- .../transaction-entry.component.scss | 142 ++++--- src/environments/.env.ts | 4 +- 3 files changed, 284 insertions(+), 218 deletions(-) diff --git a/src/app/cashier/transaction-entry/transaction-entry.component.html b/src/app/cashier/transaction-entry/transaction-entry.component.html index 385a96568..3341aff51 100644 --- a/src/app/cashier/transaction-entry/transaction-entry.component.html +++ b/src/app/cashier/transaction-entry/transaction-entry.component.html @@ -64,13 +64,6 @@ Eff. Date - @@ -251,64 +244,9 @@ - - - } - - - } @@ -1230,108 +1168,202 @@ - -
- - - - - - - - - - - - - - - - - - - - @for (row of rows; track $index; let i = $index) { - - - - - - - - - - - - - - - - } - -
TypBr.Tr.Tp.ActypA/c No.Ecs A/c No.Db./Cr.Pay Type *Cheque No.AmountDescriptionTok.No.Cheq.Date
- - - - - - - - - -
- } diff --git a/src/app/cashier/transaction-entry/transaction-entry.component.scss b/src/app/cashier/transaction-entry/transaction-entry.component.scss index 7e7842ed9..9aa39c7d5 100644 --- a/src/app/cashier/transaction-entry/transaction-entry.component.scss +++ b/src/app/cashier/transaction-entry/transaction-entry.component.scss @@ -60,31 +60,31 @@ } } -// ── Entry Grid Card ─────────────────────────────────────────────────────────── +// ── CBS Blue Transaction Entry ──────────────────────────────────────────────── -// ── Warm Stone Transaction Entry ───────────────────────────────────────────── - -$ws-ink: #2c2723; -$ws-canvas: #f3f0e9; -$ws-card: #fffefb; -$ws-border: #e7e0d2; -$ws-accent: #b45309; -$ws-text: #3a322a; -$ws-muted: #8a7e6e; -$ws-micro: #a89a85; -$ws-dr: #b0412a; -$ws-cr: #4f7d3a; -$ws-divider: #ece4d6; -$ws-fld-bg: #faf8f2; -$ws-fld-bd: #e6dfd0; +$ws-ink: #0d1b2e; // nav bar dark navy +$ws-ink2: #162542; // slightly lighter navy (menu bar) +$ws-canvas: #f0f4f9; // page bg — light blue-grey +$ws-card: #fff; +$ws-border: #dce4ef; +$ws-accent: #e87722; // CBS orange — buttons only +$ws-focus: #2563eb; // CBS blue — field focus ring +$ws-text: #1a2a3e; +$ws-muted: #5a7089; +$ws-micro: #7a95b0; +$ws-dr: #c0392b; +$ws-cr: #1a7a4a; +$ws-divider: #dde6f0; +$ws-fld-bg: #f4f7fc; +$ws-fld-bd: #c8d8eb; .ws-wrap { background: $ws-canvas; - border-radius: 14px; + border-radius: 12px; overflow: hidden; box-shadow: - 0 1px 2px rgb(80 60 30 / 5%), - 0 10px 26px -14px rgb(90 70 40 / 20%); + 0 1px 3px rgb(13 27 46 / 8%), + 0 8px 24px -10px rgb(13 27 46 / 18%); border: 1px solid $ws-border; font-family: 'Hanken Grotesk', Inter, sans-serif; } @@ -95,9 +95,9 @@ $ws-fld-bd: #e6dfd0; align-items: center; justify-content: space-between; padding: 0 18px; - height: 52px; - background: $ws-ink; - border-bottom: 2px solid #211d19; + height: 48px; + background: linear-gradient(90deg, #0d1b2e 0%, #162542 100%); + border-bottom: 2px solid $ws-accent; &__left { display: flex; @@ -112,9 +112,9 @@ $ws-fld-bd: #e6dfd0; } &__icon { - width: 30px; - height: 30px; - border-radius: 8px; + width: 28px; + height: 28px; + border-radius: 7px; background: $ws-accent; display: flex; align-items: center; @@ -127,9 +127,9 @@ $ws-fld-bd: #e6dfd0; &__title { font-family: Newsreader, Georgia, serif; - font-size: 17px; + font-size: 16px; font-weight: 500; - color: #f4ece0; + color: #e8f0fb; letter-spacing: 0.01em; } @@ -138,26 +138,27 @@ $ws-fld-bd: #e6dfd0; align-items: center; gap: 7px; font-size: 11.5px; - color: #b6a591; + color: #7a95b0; svg { - stroke: #8a7e6e; + stroke: #5a7589; } } &__date { height: 28px; - padding: 0 8px; - border: 1px solid #3d342e; - border-radius: 7px; - background: #1a1512; - color: #f4ece0; + padding: 0 10px; + border: 1px solid #2a4060; + border-radius: 6px; + background: #0a1628; + color: #e8f0fb; font-family: 'Hanken Grotesk', monospace; font-size: 12px; + font-weight: 600; outline: none; &:focus { - border-color: $ws-accent; + border-color: $ws-focus; } } } @@ -205,12 +206,45 @@ $ws-fld-bd: #e6dfd0; } } + &--ghost { + background: #fff; + color: $ws-text; + border: 1px solid $ws-border; + font-size: 12px; + + &:hover { + background: $ws-canvas; + border-color: #a8bdd4; + } + } + + &--exit { + color: $ws-dr; + border-color: rgb(192 57 43 / 30%); + + &:hover { + background: #fef2f0; + border-color: $ws-dr; + } + } + + &--mode { + background: $ws-ink; + color: #c8daf0; + border: 1px solid #2a4060; + font-size: 12px; + + &:hover { + background: $ws-ink2; + } + } + &--post { background: $ws-accent; color: #fff; font-weight: 700; padding: 8px 20px; - box-shadow: 0 2px 8px rgb(180 83 9 / 30%); + box-shadow: 0 2px 8px rgb(232 119 34 / 30%); &:hover:not(:disabled) { filter: brightness(1.08); @@ -246,15 +280,15 @@ $ws-fld-bd: #e6dfd0; position: relative; &:hover { - border-color: #cdbfa6; - box-shadow: 0 2px 10px rgb(90 70 40 / 8%); + border-color: #a8bdd4; + box-shadow: 0 2px 10px rgb(13 27 46 / 8%); } &--active { border-color: $ws-accent; box-shadow: - 0 0 0 3px rgb(180 83 9 / 12%), - 0 2px 10px rgb(90 70 40 / 10%); + 0 0 0 3px rgb(232 119 34 / 14%), + 0 2px 10px rgb(13 27 46 / 10%); } &__badge { @@ -263,7 +297,7 @@ $ws-fld-bd: #e6dfd0; height: 26px; border-radius: 50%; background: $ws-ink; - color: #f4ece0; + color: #c8daf0; font-size: 11px; font-weight: 700; display: flex; @@ -286,7 +320,7 @@ $ws-fld-bd: #e6dfd0; border-radius: 50%; border: none; background: transparent; - color: #c4b8a8; + color: #9ab0c8; cursor: pointer; display: flex; align-items: center; @@ -349,14 +383,14 @@ $ws-fld-bd: #e6dfd0; font-family: Newsreader, Georgia, serif; font-style: italic; font-size: 11px; - color: #b6a791; + color: #7a95b0; padding-bottom: 1px; } .ws-vdivider { width: 1px; background: $ws-divider; - margin: 18px 12px 0; + margin: 18px 10px 0; flex-shrink: 0; } @@ -432,7 +466,7 @@ $ws-fld-bd: #e6dfd0; white-space: nowrap; &--accent { - color: $ws-accent; + color: $ws-focus; } } @@ -453,12 +487,12 @@ $ws-fld-bd: #e6dfd0; box-sizing: border-box; &:hover { - border-color: #cdbfa6; + border-color: #9ab5d0; } &:focus { - border-color: $ws-accent; - box-shadow: 0 0 0 3px rgb(180 83 9 / 13%); + border-color: $ws-focus; + box-shadow: 0 0 0 3px rgb(37 99 235 / 12%); background: #fff; } @@ -469,13 +503,13 @@ $ws-fld-bd: #e6dfd0; } &--accent { - color: $ws-accent; + color: $ws-text; font-weight: 600; } &--req { - border-color: #e0a060; - background: #fdf6ee; + border-color: #f97316; + background: #fff7ed; } } } @@ -497,8 +531,8 @@ select.ws-f__ctl { box-shadow 0.15s; &:focus-within { - border-color: $ws-accent; - box-shadow: 0 0 0 3px rgb(180 83 9 / 13%); + border-color: $ws-focus; + box-shadow: 0 0 0 3px rgb(37 99 235 / 12%); background: #fff; } @@ -591,7 +625,7 @@ select.ws-f__ctl { align-items: center; justify-content: space-between; padding: 10px 18px; - background: $ws-card; + background: linear-gradient(180deg, #f4f7fc, #edf2f9); border-top: 1px solid $ws-divider; &__stats { diff --git a/src/environments/.env.ts b/src/environments/.env.ts index 5a1c93c7e..c88202170 100644 --- a/src/environments/.env.ts +++ b/src/environments/.env.ts @@ -9,8 +9,8 @@ /* tslint:disable */ export default { 'mifos_x': { - 'version': '260603', - 'hash': '5f7de01b' + 'version': '260608', + 'hash': 'f6404708' }, 'allow_switching_backend_instance': true };