Files
asan-installer-front/src/utility/cart.tsx
T

317 lines
7.5 KiB
TypeScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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;
};
};