commit
This commit is contained in:
parent
07bb756e45
commit
8a006aaaff
|
|
@ -63,15 +63,18 @@ const CalculateStage = ({
|
|||
<section className="cs-2">
|
||||
<form>
|
||||
<div className="cs-2-left">
|
||||
<h2 className="cs-2-title">
|
||||
{locale === 'TKM'
|
||||
? 'Karzyň kalkulýatory'
|
||||
: locale === 'РУС'
|
||||
? 'Калькулятор кредита'
|
||||
: locale === 'ENG'
|
||||
? 'Loan calculator'
|
||||
: 'Karzyň kalkulýatory'}
|
||||
</h2>
|
||||
<div className="calculate-header">
|
||||
<h2 className="cs-2-title">
|
||||
{locale === 'TKM'
|
||||
? 'Karzyň kalkulýatory'
|
||||
: locale === 'РУС'
|
||||
? 'Калькулятор кредита'
|
||||
: locale === 'ENG'
|
||||
? 'Loan calculator'
|
||||
: 'Karzyň kalkulýatory'}
|
||||
</h2>
|
||||
<p>Максимальная сумма онлайн потребительского кредита составляет 60000 манат</p>
|
||||
</div>
|
||||
<div className="input-block">
|
||||
<label htmlFor="sum">
|
||||
{locale === 'TKM'
|
||||
|
|
|
|||
|
|
@ -15,7 +15,13 @@ const schema = z.object({
|
|||
// surname: z.string().min(1),
|
||||
});
|
||||
|
||||
const PaymentDetails = ({ setStage, paymentDetails, borrowerData, setSumbitCardDetails }) => {
|
||||
const PaymentDetails = ({
|
||||
setStage,
|
||||
paymentDetails,
|
||||
borrowerData,
|
||||
setSumbitCardDetails,
|
||||
paymentLink,
|
||||
}) => {
|
||||
const { locale } = useContext(LanguageContext);
|
||||
|
||||
const [invalidData, setInvalidData] = useState(false);
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ const PaymentSuccess = ({
|
|||
method: 'POST',
|
||||
|
||||
body: JSON.stringify({
|
||||
phone_number: user.mobile_phone,
|
||||
phone_number: '+99361454210',
|
||||
otp: codeValue,
|
||||
}),
|
||||
});
|
||||
|
|
@ -48,7 +48,6 @@ const PaymentSuccess = ({
|
|||
|
||||
if (jsonedResponse === 'OTP validated successfully') {
|
||||
fetchData();
|
||||
setStage(16);
|
||||
setIsLoading(false);
|
||||
}
|
||||
} catch (error) {}
|
||||
|
|
@ -132,20 +131,20 @@ const PaymentSuccess = ({
|
|||
{locale === 'TKM'
|
||||
? 'Karzyň kalkulýatory'
|
||||
: locale === 'РУС'
|
||||
? 'Оплата прошла успешно. Ваша заявка принята'
|
||||
? 'Оплата прошла успешно, ваша заявка на оформление кредитной карты принята'
|
||||
: locale === 'ENG'
|
||||
? 'Loan calculator'
|
||||
: 'Karzyň kalkulýatory'}
|
||||
</h2>
|
||||
<h2 className="cs-2-title">
|
||||
<h3 className="succes-sub-title">
|
||||
{locale === 'TKM'
|
||||
? 'Karzyň kalkulýatory'
|
||||
: locale === 'РУС'
|
||||
? 'Введите код с СМС оповещения, отправленный на номер '
|
||||
? 'Завершите оформление онлайн кредита, введя СМС код, отправленный на ваш номер телефона '
|
||||
: locale === 'ENG'
|
||||
? 'Loan calculator'
|
||||
: 'Karzyň kalkulýatory'}
|
||||
</h2>
|
||||
</h3>
|
||||
<div className="imm-credit-form-wrapper">
|
||||
<div className="input-block">
|
||||
<label htmlFor="code">
|
||||
|
|
|
|||
|
|
@ -72,8 +72,7 @@ const PhoneAccept = ({
|
|||
|
||||
if (jsonedResponse.status === 'ok') {
|
||||
setInvalidData(false);
|
||||
sendCode();
|
||||
setStage(15);
|
||||
checkPayment();
|
||||
} else if (jsonedResponse.status === 'wrong-otp') {
|
||||
setTryAgain(true);
|
||||
} else {
|
||||
|
|
@ -82,22 +81,14 @@ const PhoneAccept = ({
|
|||
} catch (error) {}
|
||||
};
|
||||
|
||||
const sendConfirmData = async () => {
|
||||
const checkPayment = async () => {
|
||||
try {
|
||||
const headers = {
|
||||
'Content-Type': 'application/json',
|
||||
};
|
||||
|
||||
const response = await fetch(
|
||||
'https://shahsyotag.halkbank.gov.tm/app/api/check-payment-credit-card',
|
||||
{
|
||||
headers: headers,
|
||||
body: JSON.stringify({
|
||||
paymentId: paymentLink.id,
|
||||
orderId: paymentDetails['md-order'],
|
||||
status: '1',
|
||||
}),
|
||||
},
|
||||
`https://shahsyotag.halkbank.gov.tm/app/api/check-payment-credit-card?paymentId=${paymentLink.id}&orderId=${paymentDetails['md-order']}&status=1`,
|
||||
);
|
||||
|
||||
if (!response.ok) {
|
||||
|
|
@ -105,8 +96,13 @@ const PhoneAccept = ({
|
|||
}
|
||||
|
||||
const jsonedResponse = await response.json();
|
||||
console.log(jsonedResponse);
|
||||
} catch (error) {}
|
||||
|
||||
if (jsonedResponse.ErrorCode === '0') {
|
||||
sendCode();
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error.toString());
|
||||
}
|
||||
};
|
||||
|
||||
const sendCode = async () => {
|
||||
|
|
@ -115,7 +111,7 @@ const PhoneAccept = ({
|
|||
method: 'POST',
|
||||
headers: { 'Content-Type': 'aplication/json' },
|
||||
body: JSON.stringify({
|
||||
phone_number: user.mobile_phone,
|
||||
phone_number: '+99361454210',
|
||||
}),
|
||||
});
|
||||
|
||||
|
|
@ -126,6 +122,8 @@ const PhoneAccept = ({
|
|||
if (!response.ok) {
|
||||
throw new Error(`HTTP error! Status: ${response.status}`);
|
||||
}
|
||||
|
||||
setStage(15);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
|
|
@ -133,7 +131,6 @@ const PhoneAccept = ({
|
|||
|
||||
const onSubmit = (data) => {
|
||||
confirmPayment();
|
||||
sendConfirmData();
|
||||
};
|
||||
|
||||
if (isLoading) {
|
||||
|
|
|
|||
|
|
@ -35,7 +35,9 @@ const ImmediateCredit = () => {
|
|||
|
||||
const [paymentDetails, setPaymentDetails] = useState();
|
||||
|
||||
console.log(userToken);
|
||||
const [paymentCardData, setPaymentCardData] = useState();
|
||||
|
||||
// console.log(userToken);
|
||||
|
||||
useEffect(() => {
|
||||
if (modalOpen) {
|
||||
|
|
@ -61,9 +63,11 @@ const ImmediateCredit = () => {
|
|||
|
||||
setLoansData(jsonedResponse);
|
||||
|
||||
// console.log('loan data', jsonedResponse);
|
||||
if (response.ok) {
|
||||
checkStatus(jsonedResponse.sign);
|
||||
}
|
||||
|
||||
checkStatus(jsonedResponse.sign);
|
||||
// console.log('loan data', jsonedResponse);
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
|
|
@ -90,31 +94,37 @@ const ImmediateCredit = () => {
|
|||
} catch (error) {}
|
||||
};
|
||||
|
||||
const fetchCard = async () => {
|
||||
const fetchCardData = async () => {
|
||||
try {
|
||||
const headers = {
|
||||
Accept: 'application/json',
|
||||
'Content-Type': 'application/json',
|
||||
Authorization: `Bearer ${userToken}`,
|
||||
};
|
||||
|
||||
const response = await fetch(
|
||||
`https://shahsyotag.halkbank.gov.tm/app/api/check-payment-credit-card`,
|
||||
`https://shahsyotag.halkbank.gov.tm/app/api/get-credit-card-data`,
|
||||
{
|
||||
method: 'get',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({
|
||||
paymentId: 1,
|
||||
orderId: 1231,
|
||||
status: '1',
|
||||
}),
|
||||
headers,
|
||||
},
|
||||
);
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error('Err');
|
||||
}
|
||||
|
||||
const jsonedResponse = await response.json();
|
||||
setPaymentCardData(jsonedResponse.data);
|
||||
|
||||
// setCardData(jsonedResponse);
|
||||
} catch (error) {}
|
||||
};
|
||||
|
||||
console.log(user);
|
||||
|
||||
useEffect(() => {
|
||||
fetchData();
|
||||
fetchCardData();
|
||||
}, []);
|
||||
|
||||
return (
|
||||
|
|
@ -174,39 +184,39 @@ const ImmediateCredit = () => {
|
|||
/>
|
||||
{loader ? <ProgressLoader progress={progress} /> : null}
|
||||
<div className="container">
|
||||
<div className="cards-inner">
|
||||
<div className="card-title">
|
||||
<h2 className="cards-title">
|
||||
<div className="card-title">
|
||||
<h2 className="cards-title">
|
||||
{locale === 'TKM'
|
||||
? 'Çalt karz almak üçin onlaýn-ýüzlenme'
|
||||
: locale === 'РУС'
|
||||
? 'Онлайн-заявка для получения быстрого кредита'
|
||||
: locale === 'ENG'
|
||||
? 'Online application for immediate loan issuance'
|
||||
: 'Çalt karz almak üçin onlaýn-ýüzlenme'}
|
||||
</h2>
|
||||
<button
|
||||
type="button"
|
||||
className="card-btn sign-btn"
|
||||
onClick={() => {
|
||||
window.scrollTo(0, 0);
|
||||
setStage(1);
|
||||
setModalOpen(true);
|
||||
}}>
|
||||
<div className="card-img">
|
||||
<img src={add} alt="add" />
|
||||
</div>
|
||||
<h3>
|
||||
{locale === 'TKM'
|
||||
? 'Çalt karz almak üçin onlaýn-ýüzlenme'
|
||||
? 'Ýüzlenme doldurmak'
|
||||
: locale === 'РУС'
|
||||
? 'Онлайн-заявка для получения быстрого кредита'
|
||||
? 'Заполнить заявку'
|
||||
: locale === 'ENG'
|
||||
? 'Online application for immediate loan issuance'
|
||||
: 'Çalt karz almak üçin onlaýn-ýüzlenme'}
|
||||
</h2>
|
||||
<button
|
||||
type="button"
|
||||
className="card-btn sign-btn"
|
||||
onClick={() => {
|
||||
window.scrollTo(0, 0);
|
||||
setStage(1);
|
||||
setModalOpen(true);
|
||||
}}>
|
||||
<div className="card-img">
|
||||
<img src={add} alt="add" />
|
||||
</div>
|
||||
<h3>
|
||||
{locale === 'TKM'
|
||||
? 'Ýüzlenme doldurmak'
|
||||
: locale === 'РУС'
|
||||
? 'Заполнить заявку'
|
||||
: locale === 'ENG'
|
||||
? 'Fill in application'
|
||||
: 'Ýüzlenme doldurmak'}
|
||||
</h3>
|
||||
</button>
|
||||
</div>
|
||||
? 'Fill in application'
|
||||
: 'Ýüzlenme doldurmak'}
|
||||
</h3>
|
||||
</button>
|
||||
</div>
|
||||
<div className="loans-inner">
|
||||
<div className="home-table-wrapper">
|
||||
<table className="home-table">
|
||||
<tbody>
|
||||
|
|
@ -258,6 +268,132 @@ const ImmediateCredit = () => {
|
|||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
{paymentCardData ? (
|
||||
<div className="home-table-wrapper">
|
||||
<h3 className="loan-card-table-title">Зааявка для получения кредитной карты</h3>
|
||||
<table className="home-table">
|
||||
<tbody>
|
||||
<tr className="table-head">
|
||||
<th>ID</th>
|
||||
<th>
|
||||
{locale === 'TKM'
|
||||
? 'Görnüşi'
|
||||
: locale === 'РУС'
|
||||
? 'Тип'
|
||||
: locale === 'ENG'
|
||||
? 'Type'
|
||||
: 'Görnüşi'}
|
||||
</th>
|
||||
<th>
|
||||
{locale === 'TKM'
|
||||
? 'Senesi'
|
||||
: locale === 'РУС'
|
||||
? 'Дата'
|
||||
: locale === 'ENG'
|
||||
? 'Date'
|
||||
: 'Senesi'}
|
||||
</th>
|
||||
<th>
|
||||
{locale === 'TKM'
|
||||
? 'Ýagdaýy'
|
||||
: locale === 'РУС'
|
||||
? 'Статус'
|
||||
: locale === 'ENG'
|
||||
? 'Status'
|
||||
: 'Ýagdaýy'}
|
||||
</th>
|
||||
</tr>
|
||||
{paymentCardData ? (
|
||||
<tr>
|
||||
<td>#{paymentCardData.id}</td>
|
||||
<td>{paymentCardData.selected_card}</td>
|
||||
<td>{paymentCardData.created_at}</td>
|
||||
<td
|
||||
className={
|
||||
paymentCardData.status === 'kart_chykarylmady'
|
||||
? 'red'
|
||||
: paymentCardData.status === 'kart_chykaryldy' ||
|
||||
paymentCardData.status === 'kabul_edildi'
|
||||
? 'green'
|
||||
: ''
|
||||
}>
|
||||
{paymentCardData.status === 'ugradyldy'
|
||||
? locale === 'TKM'
|
||||
? 'Ugradyldy'
|
||||
: locale === 'РУС'
|
||||
? 'Отправлено'
|
||||
: locale === 'ENG'
|
||||
? 'Sent'
|
||||
: 'Ugradyldy'
|
||||
: paymentCardData.status === 'kabul_edildi'
|
||||
? locale === 'TKM'
|
||||
? 'Kabul edildi'
|
||||
: locale === 'РУС'
|
||||
? 'Принята'
|
||||
: locale === 'ENG'
|
||||
? 'Accepted'
|
||||
: 'Kabul edildi'
|
||||
: paymentCardData.status === 'seredilyar'
|
||||
? locale === 'TKM'
|
||||
? 'Görülyar'
|
||||
: locale === 'РУС'
|
||||
? 'На стадии рассмотрения'
|
||||
: locale === 'ENG'
|
||||
? 'Under consideration'
|
||||
: 'Görülyar'
|
||||
: paymentCardData.status === 'kart_chykaryldy'
|
||||
? locale === 'TKM'
|
||||
? 'Tassyklandy'
|
||||
: locale === 'РУС'
|
||||
? 'Утверждено'
|
||||
: locale === 'ENG'
|
||||
? 'Approved'
|
||||
: 'Tassyklandy'
|
||||
: paymentCardData.status === 'kart_chykarylmady'
|
||||
? locale === 'TKM'
|
||||
? 'Ret edildi'
|
||||
: locale === 'РУС'
|
||||
? 'Отказано'
|
||||
: locale === 'ENG'
|
||||
? 'Denied'
|
||||
: 'Ret edildi'
|
||||
: ''}
|
||||
</td>
|
||||
<td>
|
||||
{paymentCardData.status === 'kart_chykarylmady' ? (
|
||||
<div className="reject">
|
||||
<div className="reason">
|
||||
<h4>{paymentCardData.action}</h4>
|
||||
</div>
|
||||
<img src={allert} alt="reject" />
|
||||
</div>
|
||||
) : (
|
||||
''
|
||||
)}
|
||||
</td>
|
||||
</tr>
|
||||
) : (
|
||||
<tr>
|
||||
<td>
|
||||
{locale === 'TKM'
|
||||
? 'Tabşyrlan ýüzlenme ýok'
|
||||
: locale === 'РУС'
|
||||
? 'Заявок на карты нет'
|
||||
: locale === 'ENG'
|
||||
? 'There are no applications for card issuance'
|
||||
: 'Tabşyrlan ýüzlenme ýok'}
|
||||
</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
)}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
) : null}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
|
|
|||
|
|
@ -83,6 +83,16 @@
|
|||
border-radius: 0.4rem;
|
||||
}
|
||||
|
||||
.calculate-header {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 1.6rem;
|
||||
|
||||
p {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
}
|
||||
|
||||
.notauser-title {
|
||||
font-size: 3rem;
|
||||
color: red;
|
||||
|
|
@ -93,6 +103,11 @@
|
|||
color: $base-green;
|
||||
}
|
||||
|
||||
.succes-sub-title {
|
||||
font-size: 1.8rem;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.loan-accepted-title {
|
||||
color: $base-green;
|
||||
}
|
||||
|
|
@ -106,3 +121,14 @@
|
|||
font-size: 1.8rem;
|
||||
}
|
||||
}
|
||||
|
||||
.loans-inner {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 4rem;
|
||||
}
|
||||
|
||||
.loan-card-table-title {
|
||||
font-size: 2.4rem;
|
||||
margin-bottom: 1.6rem;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue