diff --git a/src/assets/img/banks/ayandeh.png b/src/assets/img/banks/ayandeh.png new file mode 100644 index 0000000..0613a27 Binary files /dev/null and b/src/assets/img/banks/ayandeh.png differ diff --git a/src/assets/img/banks/keshavarzi.png b/src/assets/img/banks/keshavarzi.png new file mode 100644 index 0000000..6ba6c44 Binary files /dev/null and b/src/assets/img/banks/keshavarzi.png differ diff --git a/src/assets/img/banks/mellat.png b/src/assets/img/banks/mellat.png new file mode 100644 index 0000000..cc54aa6 Binary files /dev/null and b/src/assets/img/banks/mellat.png differ diff --git a/src/assets/img/banks/melli.png b/src/assets/img/banks/melli.png new file mode 100644 index 0000000..3ec5d07 Binary files /dev/null and b/src/assets/img/banks/melli.png differ diff --git a/src/assets/img/banks/pasargad.png b/src/assets/img/banks/pasargad.png new file mode 100644 index 0000000..b4e3829 Binary files /dev/null and b/src/assets/img/banks/pasargad.png differ diff --git a/src/assets/img/banks/refah-alt.png b/src/assets/img/banks/refah-alt.png new file mode 100644 index 0000000..5ac59bd Binary files /dev/null and b/src/assets/img/banks/refah-alt.png differ diff --git a/src/assets/img/banks/refah.png b/src/assets/img/banks/refah.png new file mode 100644 index 0000000..8850d8b Binary files /dev/null and b/src/assets/img/banks/refah.png differ diff --git a/src/assets/img/banks/saman.png b/src/assets/img/banks/saman.png new file mode 100644 index 0000000..ff22de6 Binary files /dev/null and b/src/assets/img/banks/saman.png differ diff --git a/src/assets/img/banks/sarmayeh.png b/src/assets/img/banks/sarmayeh.png new file mode 100644 index 0000000..e0dd11c Binary files /dev/null and b/src/assets/img/banks/sarmayeh.png differ diff --git a/src/utils/bankBranding.ts b/src/utils/bankBranding.ts index 4d223a8..b0f1dbe 100644 --- a/src/utils/bankBranding.ts +++ b/src/utils/bankBranding.ts @@ -1,6 +1,16 @@ +import ayandehLogo from '@/assets/img/banks/ayandeh.png' +import keshavarziLogo from '@/assets/img/banks/keshavarzi.png' +import mellatLogo from '@/assets/img/banks/mellat.png' +import melliLogo from '@/assets/img/banks/melli.png' +import pasargadLogo from '@/assets/img/banks/pasargad.png' +import refahLogo from '@/assets/img/banks/refah.png' +import samanLogo from '@/assets/img/banks/saman.png' +import sarmayehLogo from '@/assets/img/banks/sarmayeh.png' + const BANK_ACCENT_COLORS: Record = { 'بانک پاسارگاد': '#1f7a54', 'پاسارگاد': '#1f7a54', + 'PASARGAD': '#1f7a54', 'بانک سامان': '#2f63d8', 'سامان': '#2f63d8', 'SAMAN': '#2f63d8', @@ -8,10 +18,84 @@ const BANK_ACCENT_COLORS: Record = { 'پارسیان': '#c9a227', 'بانک ملی': '#4b5e96', 'ملی': '#4b5e96', + 'MELLI': '#4b5e96', 'بانک ملت': '#c0392b', 'ملت': '#c0392b', + 'MELLAT': '#c0392b', 'بانک صادرات': '#1a6fb3', 'صادرات': '#1a6fb3', + 'بانک آینده': '#2b2f6b', + 'آینده': '#2b2f6b', + 'AYANDEH': '#2b2f6b', + 'بانک کشاورزی': '#2e8b57', + 'کشاورزی': '#2e8b57', + 'KESHAVARZI': '#2e8b57', + 'بانک رفاه': '#c0392b', + 'رفاه': '#c0392b', + 'REFAH': '#c0392b', + 'بانک سرمایه': '#c0392b', + 'سرمایه': '#c0392b', + 'SARMAYEH': '#c0392b', +} + +const BANK_LOGOS: Record = { + 'بانک پاسارگاد': pasargadLogo, + 'پاسارگاد': pasargadLogo, + 'PASARGAD': pasargadLogo, + 'بانک سامان': samanLogo, + 'سامان': samanLogo, + 'SAMAN': samanLogo, + 'بانک ملی': melliLogo, + 'ملی': melliLogo, + 'MELLI': melliLogo, + 'بانک ملت': mellatLogo, + 'ملت': mellatLogo, + 'MELLAT': mellatLogo, + 'بانک آینده': ayandehLogo, + 'آینده': ayandehLogo, + 'AYANDEH': ayandehLogo, + 'بانک کشاورزی': keshavarziLogo, + 'کشاورزی': keshavarziLogo, + 'KESHAVARZI': keshavarziLogo, + 'بانک رفاه': refahLogo, + 'رفاه': refahLogo, + 'REFAH': refahLogo, + 'بانک سرمایه': sarmayehLogo, + 'سرمایه': sarmayehLogo, + 'SARMAYEH': sarmayehLogo, +} + +const BANK_PERSIAN_NAMES: Record = { + PASARGAD: 'بانک پاسارگاد', + SAMAN: 'بانک سامان', + MELLI: 'بانک ملی', + MELLAT: 'بانک ملت', + AYANDEH: 'بانک آینده', + KESHAVARZI: 'بانک کشاورزی', + REFAH: 'بانک رفاه', + SARMAYEH: 'بانک سرمایه', + PARSIAN: 'بانک پارسیان', + SADERAT: 'بانک صادرات', + 'بانک پاسارگاد': 'بانک پاسارگاد', + 'پاسارگاد': 'بانک پاسارگاد', + 'بانک سامان': 'بانک سامان', + 'سامان': 'بانک سامان', + 'بانک ملی': 'بانک ملی', + 'ملی': 'بانک ملی', + 'بانک ملت': 'بانک ملت', + 'ملت': 'بانک ملت', + 'بانک آینده': 'بانک آینده', + 'آینده': 'بانک آینده', + 'بانک کشاورزی': 'بانک کشاورزی', + 'کشاورزی': 'بانک کشاورزی', + 'بانک رفاه': 'بانک رفاه', + 'رفاه': 'بانک رفاه', + 'بانک سرمایه': 'بانک سرمایه', + 'سرمایه': 'بانک سرمایه', + 'بانک پارسیان': 'بانک پارسیان', + 'پارسیان': 'بانک پارسیان', + 'بانک صادرات': 'بانک صادرات', + 'صادرات': 'بانک صادرات', } export function formatShebaForDisplay(value?: string | number | null): string { @@ -64,3 +148,47 @@ export function getBankMonogram(bankName?: string): string { const normalized = trimmed.replace(/^بانک\s+/u, '').trim() return normalized.slice(0, 2) || 'بانک' } + +function findBankEntry(bankName: string | undefined, entries: Record): T | undefined { + if (!bankName?.trim()) { + return undefined + } + + const trimmed = bankName.trim() + if (entries[trimmed]) { + return entries[trimmed] + } + + const matched = Object.entries(entries).find(([name]) => trimmed.includes(name)) + return matched?.[1] +} + +export function getBankLogoUrl(bankName?: string): string | undefined { + return findBankEntry(bankName, BANK_LOGOS) +} + +export function getBankDisplayName(bankName?: string): string { + if (!bankName?.trim()) { + return 'بانک' + } + + const trimmed = bankName.trim() + if (BANK_PERSIAN_NAMES[trimmed]) { + return BANK_PERSIAN_NAMES[trimmed] + } + + const upper = trimmed.toUpperCase() + if (BANK_PERSIAN_NAMES[upper]) { + return BANK_PERSIAN_NAMES[upper] + } + + const matched = Object.entries(BANK_PERSIAN_NAMES).find(([name]) => { + if (/[\u0600-\u06FF]/u.test(name)) { + return trimmed.includes(name) + } + + return upper.includes(name) + }) + + return matched?.[1] ?? trimmed +} diff --git a/src/views/base/physicalReceive/components/RequestItem.vue b/src/views/base/physicalReceive/components/RequestItem.vue index ff7d57e..743dc26 100644 --- a/src/views/base/physicalReceive/components/RequestItem.vue +++ b/src/views/base/physicalReceive/components/RequestItem.vue @@ -1,47 +1,45 @@