317 lines
7.5 KiB
TypeScript
317 lines
7.5 KiB
TypeScript
import { BankCartInterface, BanksInterface } from "../types";
|
||
|
||
export const formatCartNumber = (num: string | number) => {
|
||
return num?.toString().replace(/\B(?=(\d{4})+(?!\d))/g, ` `);
|
||
}
|
||
|
||
export let bankCarts: BankCartInterface[] | [] | any = []
|
||
|
||
const banks: BanksInterface[] | [] = [
|
||
{
|
||
name: "ansar",
|
||
name_farsi: "انصار",
|
||
icon: <i className="ibl32 ibl-ansar" />,
|
||
iban_nbc: "063",
|
||
pan_iin: [
|
||
"627381"
|
||
]
|
||
},
|
||
{
|
||
name: "ayandeh",
|
||
name_farsi: "آینده",
|
||
icon: <i className="ibl32 ibl-ba" />,
|
||
iban_nbc: "062",
|
||
pan_iin: [
|
||
"636214"
|
||
]
|
||
},
|
||
{
|
||
name: "dey",
|
||
name_farsi: "دی",
|
||
icon: <i className="ibl32 ibl-day" />,
|
||
iban_nbc: "066",
|
||
pan_iin: [
|
||
"502938"
|
||
]
|
||
},
|
||
{
|
||
name: "eghtesad_novin",
|
||
name_farsi: "اقتصاد نوین",
|
||
icon: <i className="ibl32 ibl-en" />,
|
||
iban_nbc: "055",
|
||
pan_iin: [
|
||
"627412",
|
||
"627884"
|
||
]
|
||
},
|
||
{
|
||
name: "gardeshgari",
|
||
name_farsi: "گردشگری",
|
||
icon: <i className="ibl32 ibl-tourism" />,
|
||
iban_nbc: "064",
|
||
pan_iin: [
|
||
"505416"
|
||
]
|
||
},
|
||
{
|
||
name: "ghavamin",
|
||
name_farsi: "قوامین",
|
||
icon: <i className="ibl32 ibl-ghbi" />,
|
||
iban_nbc: "052",
|
||
pan_iin: [
|
||
"639599"
|
||
]
|
||
},
|
||
{
|
||
name: "hekmat",
|
||
name_farsi: "حکمت",
|
||
icon: <i className="ibl32 ibl-hi" />,
|
||
iban_nbc: "065",
|
||
pan_iin: [
|
||
"636949"
|
||
]
|
||
},
|
||
{
|
||
name: "iran_zamin",
|
||
name_farsi: "ایرانزمین",
|
||
icon: <i className="ibl32 ibl-iz" />,
|
||
iban_nbc: "069",
|
||
pan_iin: [
|
||
"505785",
|
||
]
|
||
},
|
||
{
|
||
name: "karafarin",
|
||
name_farsi: "کارآفرین",
|
||
icon: <i className="ibl32 ibl-kar" />,
|
||
iban_nbc: "053",
|
||
pan_iin: [
|
||
"502910",
|
||
"627488"
|
||
]
|
||
},
|
||
{
|
||
name: "keshavarzi",
|
||
name_farsi: "کشاورزی",
|
||
icon: <i className="ibl32 ibl-bki" />,
|
||
iban_nbc: "016",
|
||
pan_iin: [
|
||
"603770",
|
||
"639217"
|
||
]
|
||
},
|
||
{
|
||
name: "khavar_mianeh",
|
||
name_farsi: "خاورمیانه",
|
||
icon: <img src="/svgs/banks/icons/khavar-mianeh.svg" alt="khavar mianeh" />,
|
||
iban_nbc: "078",
|
||
pan_iin: [
|
||
"505809"
|
||
]
|
||
},
|
||
{
|
||
name: "maskan",
|
||
name_farsi: "مسکن",
|
||
icon: <img src="/svgs/banks/icons/maskan.svg" alt="maskan" />,
|
||
iban_nbc: "014",
|
||
pan_iin: [
|
||
"628023"
|
||
]
|
||
},
|
||
{
|
||
name: "mehr_iran",
|
||
name_farsi: "مهر ایران",
|
||
icon: <img src="/svgs/banks/icons/mehr.svg" alt="mehr" />,
|
||
iban_nbc: "060",
|
||
pan_iin: [
|
||
"606373"
|
||
]
|
||
},
|
||
{
|
||
name: "melall",
|
||
name_farsi: "ملل",
|
||
icon: <img src="/svgs/banks/icons/melal.svg" alt="melal" />,
|
||
iban_nbc: "075",
|
||
pan_iin: [
|
||
"606256"
|
||
]
|
||
},
|
||
{
|
||
name: "mellat",
|
||
name_farsi: "ملت",
|
||
icon: <img src="/svgs/banks/icons/melat.svg" alt="melat" />,
|
||
iban_nbc: "012",
|
||
pan_iin: [
|
||
"610433",
|
||
"991975"
|
||
]
|
||
},
|
||
{
|
||
name: "melli",
|
||
name_farsi: "ملی",
|
||
icon: <img src="/svgs/banks/icons/meli.svg" alt="meli" />,
|
||
iban_nbc: "017",
|
||
pan_iin: [
|
||
"603799",
|
||
"589905",
|
||
"170019"
|
||
]
|
||
},
|
||
{
|
||
name: "parsian",
|
||
name_farsi: "پارسیان",
|
||
icon: <img src="/svgs/banks/icons/parsian.svg" alt="parsian" />,
|
||
iban_nbc: "054",
|
||
pan_iin: [
|
||
"622106",
|
||
"639194"
|
||
]
|
||
},
|
||
{
|
||
name: "pasargad",
|
||
name_farsi: "پاسارگاد",
|
||
icon: <img src="/svgs/banks/icons/pasargad.svg" alt="pasargad" />,
|
||
iban_nbc: "057",
|
||
pan_iin: [
|
||
"502229",
|
||
"639347"
|
||
]
|
||
},
|
||
{
|
||
name: "postbank",
|
||
name_farsi: "پستبانک",
|
||
icon: <img src="/svgs/banks/icons/post-bank.svg" alt="post bank" />,
|
||
iban_nbc: "021",
|
||
pan_iin: [
|
||
"627760"
|
||
]
|
||
},
|
||
{
|
||
name: "refah",
|
||
name_farsi: "رفاه",
|
||
icon: <img src="/svgs/banks/icons/refah.svg" alt="refah" />,
|
||
iban_nbc: "013",
|
||
pan_iin: [
|
||
"589463"
|
||
]
|
||
},
|
||
{
|
||
name: "resalat",
|
||
name_farsi: "رسالت",
|
||
icon: <img src="/svgs/banks/icons/resalat.svg" alt="resalat" />,
|
||
iban_nbc: "070",
|
||
pan_iin: [
|
||
"504172"
|
||
]
|
||
},
|
||
{
|
||
name: "saderat",
|
||
name_farsi: "صادرات",
|
||
icon: <img src="/svgs/banks/icons/saderat.svg" alt="saderat" />,
|
||
iban_nbc: "019",
|
||
pan_iin: [
|
||
"603769"
|
||
]
|
||
},
|
||
{
|
||
name: "saman",
|
||
name_farsi: "سامان",
|
||
icon: <img src="/svgs/banks/icons/saman.svg" alt="saman" />,
|
||
iban_nbc: "056",
|
||
pan_iin: [
|
||
"621986"
|
||
]
|
||
},
|
||
{
|
||
name: "sanat_madan",
|
||
name_farsi: "صنعت و معدن",
|
||
icon: <img src="/svgs/banks/icons/sanat-madan.svg" alt="sanat madan" />,
|
||
iban_nbc: "011",
|
||
pan_iin: [
|
||
"627961"
|
||
]
|
||
},
|
||
{
|
||
name: "sarmayeh",
|
||
name_farsi: "سرمایه",
|
||
icon: <img src="/svgs/banks/icons/sarmaye.svg" alt="sarmaye" />,
|
||
iban_nbc: "058",
|
||
pan_iin: [
|
||
"639607"
|
||
]
|
||
},
|
||
{
|
||
name: "sepah",
|
||
name_farsi: "سپه",
|
||
icon: <img src="/svgs/banks/icons/sepah.svg" alt="sepah" />,
|
||
iban_nbc: "015",
|
||
pan_iin: [
|
||
"589210"
|
||
]
|
||
},
|
||
{
|
||
name: "shahr",
|
||
name_farsi: "شهر",
|
||
icon: <i className="ibl32 ibl-shahr" />,
|
||
iban_nbc: "061",
|
||
pan_iin: [
|
||
"502806",
|
||
"504706"
|
||
]
|
||
},
|
||
{
|
||
name: "sina",
|
||
name_farsi: "سینا",
|
||
icon: <img src="/svgs/banks/icons/sina.svg" alt="sina" />,
|
||
iban_nbc: "059",
|
||
pan_iin: [
|
||
"639346"
|
||
]
|
||
},
|
||
{
|
||
name: "tejarat",
|
||
name_farsi: "تجارت",
|
||
icon: <img src="/svgs/banks/icons/tejarat.svg" alt="tejarat" />,
|
||
iban_nbc: "018",
|
||
pan_iin: [
|
||
"585983",
|
||
"627353"
|
||
]
|
||
},
|
||
{
|
||
name: "tosee_saderat",
|
||
name_farsi: "توسعه صادرات",
|
||
icon: <img src="/svgs/banks/icons/tsaderat.svg" alt="tosee saderat" />,
|
||
iban_nbc: "020",
|
||
pan_iin: [
|
||
"207177",
|
||
"627648"
|
||
]
|
||
},
|
||
{
|
||
name: "tosee_taavon",
|
||
name_farsi: "توسعه تعاون",
|
||
icon: <img src="/svgs/banks/icons/taavon.svg" alt="tosee taavon" />,
|
||
iban_nbc: "022",
|
||
pan_iin: [
|
||
"502908"
|
||
]
|
||
}
|
||
]
|
||
|
||
let cache: any = {};
|
||
|
||
export const findBankByPAN = (cardNumber: string | number) => {
|
||
cardNumber = String(cardNumber);
|
||
if (!/^[\d*]+$/.test(cardNumber) || cardNumber.length < 6) return {};
|
||
const iin: string = cardNumber.slice(0, 6);
|
||
|
||
if (cache[iin]) {
|
||
return cache[iin];
|
||
} else {
|
||
const bank: any = banks?.find((bank: any) => bank?.pan_iin.includes(iin))
|
||
if (!bank) return {};
|
||
cache[iin] = { ...bank };
|
||
return bank;
|
||
};
|
||
}; |