--
cgit v1.2.3
From 0c48c602edb0ffb33e6259a774a2aad0fff75713 Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Fri, 1 Nov 2024 15:45:02 +0700
Subject: update pengajuan tempo
---
.../pengajuan-tempo/component/PengajuanTempo.jsx | 72 ++++++++++++----------
1 file changed, 38 insertions(+), 34 deletions(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index 4d5207c2..04797c5f 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -171,37 +171,6 @@ const PengajuanTempo = () => {
setCurrentStep((prev) => (prev === NUMBER_OF_STEPS - 1 ? prev : prev + 1));
};
- const splitDataAndSend = async (data, partSize = 50000) => {
- const totalDataSize = JSON.stringify(data).length;
-
- if (totalDataSize <= partSize) {
- return await createPengajuanTempoApi(data);
- }
- const dataParts = [];
- let currentIndex = 0;
-
- while (currentIndex < totalDataSize) {
- const part = JSON.stringify(data).slice(
- currentIndex,
- currentIndex + partSize
- );
- dataParts.push(part);
- currentIndex += partSize;
- }
-
- const responses = [];
- for (let i = 0; i < dataParts.length; i++) {
- const partData = {
- data: dataParts[i],
- part: i + 1,
- totalParts: dataParts.length,
- };
- responses.push(await createPengajuanTempoApi(partData));
- }
-
- return responses;
- };
-
const handleDaftarTempo = async () => {
for (const error of stepDivsError) {
if (error.length > 0) {
@@ -224,22 +193,57 @@ const PengajuanTempo = () => {
base64: doc.base64,
},
}));
+
const data2 = {
+ user_id: auth.id,
...form,
...formKontakPerson,
...formPengiriman,
formDocs: JSON.stringify(formattedDokumen),
formSupplier: JSON.stringify(productOrder),
- user_id: auth.id,
};
const toastId = toast.loading('Mengirimkan formulir pengajuan tempo...');
setIsLoading(true);
try {
- const address = await splitDataAndSend(data2);
+ let address5;
+ const address = await createPengajuanTempoApi({
+ id: '0',
+ user_id: auth.id,
+ ...form,
+ });
+ if (address.id) {
+ const address2 = await createPengajuanTempoApi({
+ id: address.id,
+ user_id: address.userId,
+ ...formKontakPerson,
+ });
+ if (address2.id) {
+ const address3 = await createPengajuanTempoApi({
+ id: address2.id,
+ user_id: address2.userId,
+ ...formPengiriman,
+ });
+ if (address3.id) {
+ const address4 = await createPengajuanTempoApi({
+ id: address3.id,
+ user_id: address3.userId,
+ formDocs: JSON.stringify(formattedDokumen),
+ });
+ if (address4.id) {
+ address5 = await createPengajuanTempoApi({
+ id: address4.id,
+ user_id: address4.userId,
+ tempo_request: true,
+ formSupplier: JSON.stringify(productOrder),
+ });
+ }
+ }
+ }
+ }
toast.dismiss(toastId);
setIsLoading(false);
- if (address) {
+ if (address5.id) {
toast.success('Pengajuan tempo berhasil dilakukan');
// removeFromLocalStorage();
router.push('/pengajuan-tempo/finish?tempo_id=SO-2023-06480');
--
cgit v1.2.3
From 3550c262e5eeb1b861ae100cd26ae853c7f153fe Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Mon, 4 Nov 2024 14:25:02 +0700
Subject: update pengajuan tempo mobile 80%
---
src/lib/pengajuan-tempo/component/PengajuanTempo.jsx | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index 04797c5f..7ed208db 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -22,7 +22,9 @@ import createPengajuanTempoApi from '../api/createPengajuanTempoApi';
import { Button, Checkbox, Spinner, Tooltip } from '@chakra-ui/react';
import clsxm from '~/libs/clsxm';
import { toast } from 'react-hot-toast';
+import useDevice from '@/core/hooks/useDevice';
const PengajuanTempo = () => {
+ const { isDesktop, isMobile } = useDevice();
const [currentStep, setCurrentStep] = React.useState(0);
const NUMBER_OF_STEPS = 6;
const [isLoading, setIsLoading] = useState(false);
@@ -298,8 +300,17 @@ const PengajuanTempo = () => {
{stepDivs[currentStep]}
-
-
+ {isDesktop &&
}
+ {isMobile && (
+
+ )}
+
*Pastikan data yang anda masukan sudah benar dan sesuai
@@ -312,7 +323,7 @@ const PengajuanTempo = () => {
>
Date: Mon, 4 Nov 2024 16:10:09 +0700
Subject: update pengajuan tempo mobile view fix
---
src/lib/pengajuan-tempo/component/PengajuanTempo.jsx | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index 7ed208db..d0e1fcc6 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -335,7 +335,11 @@ const PengajuanTempo = () => {
)}
{currentStep == 5 && (
-
+
Daftar Tempo { }
)}
--
cgit v1.2.3
From 6bbf1dbd94355f34f58f4b72f134f3dbeac776aa Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Sat, 23 Nov 2024 11:55:59 +0700
Subject: update tempo
---
.../pengajuan-tempo/component/PengajuanTempo.jsx | 228 +++++++++++++++++++--
1 file changed, 210 insertions(+), 18 deletions(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index d0e1fcc6..fc558b01 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -7,7 +7,7 @@ import Pengiriman from './Pengiriman';
import Referensi from './Referensi';
import Dokumen from './Dokumen';
import Konfirmasi from './Konfirmasi';
-import useAuth from '@/core/hooks/useAuth';
+import { getAuth } from '~/libs/auth';
import { useRouter } from 'next/router';
import { Controller, useForm } from 'react-hook-form';
import {
@@ -23,14 +23,17 @@ import { Button, Checkbox, Spinner, Tooltip } from '@chakra-ui/react';
import clsxm from '~/libs/clsxm';
import { toast } from 'react-hot-toast';
import useDevice from '@/core/hooks/useDevice';
+import odooApi from '~/libs/odooApi';
const PengajuanTempo = () => {
const { isDesktop, isMobile } = useDevice();
const [currentStep, setCurrentStep] = React.useState(0);
const NUMBER_OF_STEPS = 6;
const [isLoading, setIsLoading] = useState(false);
+ const [bigData, setBigData] = useState();
+ const [idTempo, setIdTempo] = useState(0);
const { form, errors, validate, updateForm } = usePengajuanTempoStore();
const { control, watch, setValue } = useForm();
- const auth = useAuth();
+ const auth = getAuth();
const router = useRouter();
const { formDokumen, errorsDokumen, validateDokumen, updateFormDokumen } =
usePengajuanTempoStoreDokumen();
@@ -131,48 +134,230 @@ const PengajuanTempo = () => {
validatePengiriman();
validateDokumen();
updateHasSave(false);
-
+ if (isFormValid) {
+ window.scrollTo({
+ top: 0,
+ behavior: 'smooth',
+ });
+ }
+ }, [currentStep, buttonSubmitClick]);
+ useEffect(() => {
window.scrollTo({
top: 0,
behavior: 'smooth',
});
- }, [currentStep, buttonSubmitClick]);
+ }, [currentStep]);
useEffect(() => {
- const cachedData = getFromLocalStorage(stepLabels[currentStep]);
+ const loadBigData = async () => {
+ const toCamelCase = (str) =>
+ str.replace(/_([a-z])/g, (_, letter) => letter.toUpperCase());
+
+ const transformKeysToCamelCase = (data) => {
+ if (Array.isArray(data)) {
+ return data.map((item) => transformKeysToCamelCase(item));
+ } else if (data && typeof data === 'object') {
+ return Object.keys(data).reduce((acc, key) => {
+ const camelKey = toCamelCase(key); // Ubah kunci menjadi camelCase
+ acc[camelKey] = transformKeysToCamelCase(data[key]); // Rekursif untuk nested object atau array
+ return acc;
+ }, {});
+ }
+ return data; // Jika bukan object atau array, kembalikan nilai aslinya
+ };
+
+ try {
+ const dataPaymentTerm = await odooApi(
+ 'GET',
+ `/api/v1/partner/detail-tempo/${auth.parentId}`
+ );
+
+ console.log('Original dataPaymentTerm', dataPaymentTerm);
+
+ const transformedData = transformKeysToCamelCase(dataPaymentTerm);
+
+ console.log('Transformed dataPaymentTerm', transformedData);
+
+ setBigData(transformedData);
+ } catch (error) {
+ console.error('Error loading dataPaymentTerm:', error);
+ }
+ };
+
+ loadBigData();
+ }, []);
+
+ console.log('bigData', bigData);
+
+ useEffect(() => {
+ const cachedData = bigData;
+ console.log('data_lama', getFromLocalStorage(stepLabels[currentStep]));
+ console.log('cachedData', cachedData);
+
if (cachedData) {
- if (currentStep == 3) {
+ // Ambil kunci-kunci yang relevan berdasarkan currentStep dari stepDivsForm
+ const formKeys = stepDivsForm[currentStep]
+ ? Object.keys(stepDivsForm[currentStep])
+ : [];
+ console.log('formKeys', formKeys);
+ if (currentStep === 3) {
stepDivsUpdateForm[currentStep](cachedData);
- } else if (currentStep == 4) {
- Object.keys(cachedData).forEach((key) => {
- const { name, format, base64 } = cachedData[key];
- stepDivsUpdateForm[currentStep](key, name, format, base64);
+ } else if (currentStep === 4) {
+ formKeys.forEach((key) => {
+ if (cachedData[key]) {
+ // Proses hanya kunci yang ada di cachedData
+ const { name, format, base64 } = cachedData[key];
+ stepDivsUpdateForm[currentStep](key, name, format, base64);
+ }
});
} else {
- Object.keys(cachedData).forEach((key) => {
- stepDivsUpdateForm[currentStep](key, cachedData[key]);
+ formKeys.forEach((key) => {
+ if (cachedData[key]) {
+ // Ubah data menjadi string
+ const stringData =
+ typeof cachedData[key] === 'object'
+ ? JSON.stringify(cachedData[key]) // Untuk objek atau array
+ : String(cachedData[key]); // Untuk tipe primitif
+
+ // Kirim data yang sudah diubah ke string ke stepDivsUpdateForm
+ stepDivsUpdateForm[currentStep](key, stringData);
+ }
});
}
}
+
validate();
validateKontakPerson();
validatePengiriman();
validateDokumen();
updateHasSave(false);
- }, [currentStep]);
+ }, [currentStep, bigData]);
+
const goToNextStep = () => {
if (!isFormValid) {
setNotValid(true);
setButtonSubmitClick(!buttonSubmitClick);
return;
} else {
- saveToLocalStorage(stepLabels[currentStep], stepDivsForm[currentStep]);
+ // saveToLocalStorage(stepLabels[currentStep], stepDivsForm[currentStep]);
+ if (currentStep == 3) {
+ handleDaftarTempoSupplier();
+ } else if (currentStep == 4) {
+ handleDaftarTempoDokumen();
+ } else {
+ handleDaftarTempoPerPage(
+ stepLabels[currentStep],
+ stepDivsForm[currentStep]
+ );
+ }
setButtonSubmitClick(!buttonSubmitClick);
setNotValid(false);
}
setCurrentStep((prev) => (prev === NUMBER_OF_STEPS - 1 ? prev : prev + 1));
};
+ const handleDaftarTempoPerPage = async (
+ label,
+ formData,
+ tempoRequest = false
+ ) => {
+ for (const error of stepDivsError) {
+ if (error.length > 0) {
+ return;
+ }
+ }
+ const toastId = toast.loading('Mengirimkan formulir pengajuan tempo...');
+ setIsLoading(true);
+ try {
+ const address = await createPengajuanTempoApi({
+ id: idTempo,
+ user_id: auth.parentId,
+ section: label,
+ tempo_request: tempoRequest,
+ ...formData,
+ });
+ if (address.id) {
+ setIdTempo(address.id);
+ }
+ toast.dismiss(toastId);
+ setIsLoading(false);
+ } catch (error) {
+ toast.dismiss(toastId);
+ setIsLoading(false);
+
+ toast.error('Terjadi kesalahan dalam pengiriman formulir');
+ console.error(error);
+ }
+ };
+ const handleDaftarTempoDokumen = async () => {
+ for (const error of stepDivsError) {
+ if (error.length > 0) {
+ return;
+ }
+ }
+ const formattedDokumen = Object.entries(formDokumen).map(([key, doc]) => ({
+ documentName: key,
+ details: {
+ name: doc.name,
+ format: doc.format,
+ base64: doc.base64,
+ },
+ }));
+ const toastId = toast.loading('Mengirimkan formulir pengajuan tempo...');
+ setIsLoading(true);
+ try {
+ const address = await createPengajuanTempoApi({
+ id: idTempo,
+ user_id: auth.parentId,
+ formDocs: JSON.stringify(formattedDokumen),
+ });
+ if (address.id) {
+ setIdTempo(address.id);
+ }
+ toast.dismiss(toastId);
+ setIsLoading(false);
+ } catch (error) {
+ toast.dismiss(toastId);
+ setIsLoading(false);
+
+ toast.error('Terjadi kesalahan dalam pengiriman formulir');
+ console.error(error);
+ }
+ };
+ const handleDaftarTempoSupplier = async () => {
+ for (const error of stepDivsError) {
+ if (error.length > 0) {
+ return;
+ }
+ }
+ const productOrder = formSupplier.map((product) => ({
+ supplier: product.supplier,
+ pic: product.pic,
+ telepon: product.telepon,
+ durasiTempo: product.durasiTempo,
+ creditLimit: product.creditLimit,
+ }));
+ const toastId = toast.loading('Mengirimkan formulir pengajuan tempo...');
+ setIsLoading(true);
+ try {
+ const address = await createPengajuanTempoApi({
+ id: idTempo,
+ user_id: auth.parentId,
+ formDocs: JSON.stringify(productOrder),
+ });
+ if (address.id) {
+ setIdTempo(address.id);
+ }
+ toast.dismiss(toastId);
+ setIsLoading(false);
+ } catch (error) {
+ toast.dismiss(toastId);
+ setIsLoading(false);
+
+ toast.error('Terjadi kesalahan dalam pengiriman formulir');
+ console.error(error);
+ }
+ };
const handleDaftarTempo = async () => {
for (const error of stepDivsError) {
if (error.length > 0) {
@@ -195,6 +380,11 @@ const PengajuanTempo = () => {
base64: doc.base64,
},
}));
+ if (currentStep == 3) {
+ formData = JSON.stringify(productOrder);
+ } else if (currentStep == 4) {
+ formData = JSON.stringify(formattedDokumen);
+ }
const data2 = {
user_id: auth.id,
@@ -209,8 +399,10 @@ const PengajuanTempo = () => {
try {
let address5;
const address = await createPengajuanTempoApi({
- id: '0',
- user_id: auth.id,
+ id: 0,
+ user_id: auth.parentId,
+ section: label,
+ tempo_request: tempoRequest,
...form,
});
if (address.id) {
@@ -247,7 +439,7 @@ const PengajuanTempo = () => {
if (address5.id) {
toast.success('Pengajuan tempo berhasil dilakukan');
- // removeFromLocalStorage();
+ removeFromLocalStorage();
router.push('/pengajuan-tempo/finish?tempo_id=SO-2023-06480');
}
} catch (error) {
@@ -338,7 +530,7 @@ const PengajuanTempo = () => {
Daftar Tempo { }
--
cgit v1.2.3
From 654fbb128ab331c3272d6e8733dda1b5b71f4253 Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Mon, 25 Nov 2024 10:05:02 +0700
Subject: update pengajuan tempo
---
src/lib/pengajuan-tempo/component/PengajuanTempo.jsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index fc558b01..952c4244 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -343,7 +343,7 @@ const PengajuanTempo = () => {
const address = await createPengajuanTempoApi({
id: idTempo,
user_id: auth.parentId,
- formDocs: JSON.stringify(productOrder),
+ formSupplier: JSON.stringify(productOrder),
});
if (address.id) {
setIdTempo(address.id);
@@ -530,7 +530,7 @@ const PengajuanTempo = () => {
Daftar Tempo { }
--
cgit v1.2.3
From 494909f40b918e4273d6258a74f12ac42253a4a7 Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Mon, 25 Nov 2024 17:04:51 +0700
Subject: pengajuan tempo
---
src/lib/pengajuan-tempo/component/PengajuanTempo.jsx | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index 952c4244..ab66f94f 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -79,6 +79,7 @@ const PengajuanTempo = () => {
key='referensi'
chekValid={notValid}
buttonSubmitClick={buttonSubmitClick}
+ data={bigData?.supplierIds}
/>,
{
useEffect(() => {
const cachedData = bigData;
console.log('data_lama', getFromLocalStorage(stepLabels[currentStep]));
- console.log('cachedData', cachedData);
if (cachedData) {
// Ambil kunci-kunci yang relevan berdasarkan currentStep dari stepDivsForm
@@ -201,7 +201,8 @@ const PengajuanTempo = () => {
: [];
console.log('formKeys', formKeys);
if (currentStep === 3) {
- stepDivsUpdateForm[currentStep](cachedData);
+ console.log('cachedData', cachedData.supplierIds[0]);
+ stepDivsUpdateForm[currentStep](cachedData.supplierIds);
} else if (currentStep === 4) {
formKeys.forEach((key) => {
if (cachedData[key]) {
@@ -230,6 +231,7 @@ const PengajuanTempo = () => {
validateKontakPerson();
validatePengiriman();
validateDokumen();
+ validateSupplier();
updateHasSave(false);
}, [currentStep, bigData]);
@@ -292,6 +294,7 @@ const PengajuanTempo = () => {
const handleDaftarTempoDokumen = async () => {
for (const error of stepDivsError) {
if (error.length > 0) {
+ console.log('iman_erro', error);
return;
}
}
@@ -337,6 +340,7 @@ const PengajuanTempo = () => {
durasiTempo: product.durasiTempo,
creditLimit: product.creditLimit,
}));
+ console.log('productOrder', productOrder);
const toastId = toast.loading('Mengirimkan formulir pengajuan tempo...');
setIsLoading(true);
try {
@@ -344,6 +348,7 @@ const PengajuanTempo = () => {
id: idTempo,
user_id: auth.parentId,
formSupplier: JSON.stringify(productOrder),
+ section,
});
if (address.id) {
setIdTempo(address.id);
@@ -380,11 +385,6 @@ const PengajuanTempo = () => {
base64: doc.base64,
},
}));
- if (currentStep == 3) {
- formData = JSON.stringify(productOrder);
- } else if (currentStep == 4) {
- formData = JSON.stringify(formattedDokumen);
- }
const data2 = {
user_id: auth.id,
@@ -401,10 +401,10 @@ const PengajuanTempo = () => {
const address = await createPengajuanTempoApi({
id: 0,
user_id: auth.parentId,
- section: label,
tempo_request: tempoRequest,
...form,
});
+ console.log('address', address);
if (address.id) {
const address2 = await createPengajuanTempoApi({
id: address.id,
--
cgit v1.2.3
From 77f9843ad5072583cb1797d7ecf5ac80394bad3f Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Mon, 2 Dec 2024 09:31:44 +0700
Subject: pengajuan tempo
---
.../pengajuan-tempo/component/PengajuanTempo.jsx | 43 ++++++++++++++++------
1 file changed, 31 insertions(+), 12 deletions(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index ab66f94f..97e64030 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -8,6 +8,8 @@ import Referensi from './Referensi';
import Dokumen from './Dokumen';
import Konfirmasi from './Konfirmasi';
import { getAuth } from '~/libs/auth';
+import { setAuth } from '@/core/utils/auth';
+import useAuth from '@/core/hooks/useAuth';
import { useRouter } from 'next/router';
import { Controller, useForm } from 'react-hook-form';
import {
@@ -24,6 +26,7 @@ import clsxm from '~/libs/clsxm';
import { toast } from 'react-hot-toast';
import useDevice from '@/core/hooks/useDevice';
import odooApi from '~/libs/odooApi';
+import editAuthTempo from '../api/editAuthTempo';
const PengajuanTempo = () => {
const { isDesktop, isMobile } = useDevice();
const [currentStep, setCurrentStep] = React.useState(0);
@@ -33,7 +36,7 @@ const PengajuanTempo = () => {
const [idTempo, setIdTempo] = useState(0);
const { form, errors, validate, updateForm } = usePengajuanTempoStore();
const { control, watch, setValue } = useForm();
- const auth = getAuth();
+ const auth = useAuth();
const router = useRouter();
const { formDokumen, errorsDokumen, validateDokumen, updateFormDokumen } =
usePengajuanTempoStoreDokumen();
@@ -363,6 +366,7 @@ const PengajuanTempo = () => {
console.error(error);
}
};
+
const handleDaftarTempo = async () => {
for (const error of stepDivsError) {
if (error.length > 0) {
@@ -386,46 +390,55 @@ const PengajuanTempo = () => {
},
}));
- const data2 = {
- user_id: auth.id,
- ...form,
- ...formKontakPerson,
- ...formPengiriman,
- formDocs: JSON.stringify(formattedDokumen),
- formSupplier: JSON.stringify(productOrder),
- };
+ // const data2 = {
+ // user_id: auth.id,
+ // ...form,
+ // ...formKontakPerson,
+ // ...formPengiriman,
+ // formDocs: JSON.stringify(formattedDokumen),
+ // formSupplier: JSON.stringify(productOrder),
+ // };
const toastId = toast.loading('Mengirimkan formulir pengajuan tempo...');
setIsLoading(true);
try {
let address5;
+ console.log('MASUK SINI');
const address = await createPengajuanTempoApi({
id: 0,
+ partner_id: auth.partnerId,
user_id: auth.parentId,
- tempo_request: tempoRequest,
+ tempo_request: false,
...form,
});
console.log('address', address);
if (address.id) {
const address2 = await createPengajuanTempoApi({
id: address.id,
+ partner_id: auth.partnerId,
user_id: address.userId,
+ tempo_request: false,
...formKontakPerson,
});
if (address2.id) {
const address3 = await createPengajuanTempoApi({
id: address2.id,
+ partner_id: auth.partnerId,
user_id: address2.userId,
+ tempo_request: false,
...formPengiriman,
});
if (address3.id) {
const address4 = await createPengajuanTempoApi({
id: address3.id,
+ partner_id: auth.partnerId,
user_id: address3.userId,
+ tempo_request: false,
formDocs: JSON.stringify(formattedDokumen),
});
if (address4.id) {
address5 = await createPengajuanTempoApi({
id: address4.id,
+ partner_id: auth.partnerId,
user_id: address4.userId,
tempo_request: true,
formSupplier: JSON.stringify(productOrder),
@@ -439,8 +452,14 @@ const PengajuanTempo = () => {
if (address5.id) {
toast.success('Pengajuan tempo berhasil dilakukan');
- removeFromLocalStorage();
- router.push('/pengajuan-tempo/finish?tempo_id=SO-2023-06480');
+ const isUpdated = await editAuthTempo();
+ if (isUpdated?.user) {
+ setAuth(isUpdated.user);
+ toast.success('Berhasil mengubah status akun', { duration: 1000 });
+ removeFromLocalStorage();
+ router.push('/pengajuan-tempo/finish?tempo_id=SO-2023-06480');
+ return;
+ }
}
} catch (error) {
toast.dismiss(toastId);
--
cgit v1.2.3
From 9a49b8d84761781531cb417731cb9ef802f63541 Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Wed, 4 Dec 2024 10:59:21 +0700
Subject: update pengajuan tempo
---
.../pengajuan-tempo/component/PengajuanTempo.jsx | 90 ++++++++++------------
1 file changed, 39 insertions(+), 51 deletions(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index 97e64030..1704556e 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -176,12 +176,6 @@ const PengajuanTempo = () => {
`/api/v1/partner/detail-tempo/${auth.parentId}`
);
- console.log('Original dataPaymentTerm', dataPaymentTerm);
-
- const transformedData = transformKeysToCamelCase(dataPaymentTerm);
-
- console.log('Transformed dataPaymentTerm', transformedData);
-
setBigData(transformedData);
} catch (error) {
console.error('Error loading dataPaymentTerm:', error);
@@ -189,54 +183,50 @@ const PengajuanTempo = () => {
};
loadBigData();
- }, []);
-
- console.log('bigData', bigData);
+ }, [auth]);
useEffect(() => {
const cachedData = bigData;
- console.log('data_lama', getFromLocalStorage(stepLabels[currentStep]));
-
- if (cachedData) {
- // Ambil kunci-kunci yang relevan berdasarkan currentStep dari stepDivsForm
- const formKeys = stepDivsForm[currentStep]
- ? Object.keys(stepDivsForm[currentStep])
- : [];
- console.log('formKeys', formKeys);
- if (currentStep === 3) {
- console.log('cachedData', cachedData.supplierIds[0]);
- stepDivsUpdateForm[currentStep](cachedData.supplierIds);
- } else if (currentStep === 4) {
- formKeys.forEach((key) => {
- if (cachedData[key]) {
- // Proses hanya kunci yang ada di cachedData
- const { name, format, base64 } = cachedData[key];
- stepDivsUpdateForm[currentStep](key, name, format, base64);
- }
- });
- } else {
- formKeys.forEach((key) => {
- if (cachedData[key]) {
- // Ubah data menjadi string
- const stringData =
- typeof cachedData[key] === 'object'
- ? JSON.stringify(cachedData[key]) // Untuk objek atau array
- : String(cachedData[key]); // Untuk tipe primitif
- // Kirim data yang sudah diubah ke string ke stepDivsUpdateForm
- stepDivsUpdateForm[currentStep](key, stringData);
- }
- });
+ const loadBigData = async () => {
+ if (cachedData) {
+ // Ambil kunci-kunci yang relevan berdasarkan currentStep dari stepDivsForm
+ const formKeys = stepDivsForm[currentStep]
+ ? Object.keys(stepDivsForm[currentStep])
+ : [];
+ if (currentStep === 3) {
+ stepDivsUpdateForm[currentStep](cachedData.supplierIds);
+ } else if (currentStep === 4) {
+ formKeys.forEach((key) => {
+ if (cachedData[key]) {
+ // Proses hanya kunci yang ada di cachedData
+ const { name, format, base64 } = cachedData[key];
+ stepDivsUpdateForm[currentStep](key, name, format, base64);
+ }
+ });
+ } else {
+ formKeys.forEach((key) => {
+ if (bigData[key]) {
+ // Ubah data menjadi string
+ const stringData =
+ typeof bigData[key] === 'object'
+ ? JSON.stringify(bigData[key]) // Untuk objek atau array
+ : String(bigData[key]); // Untuk tipe primitif
+ // Kirim data yang sudah diubah ke string ke stepDivsUpdateForm
+ stepDivsUpdateForm[currentStep](key, stringData);
+ }
+ });
+ }
}
- }
-
+ };
+ loadBigData();
validate();
validateKontakPerson();
validatePengiriman();
validateDokumen();
validateSupplier();
updateHasSave(false);
- }, [currentStep, bigData]);
+ }, [currentStep, bigData, auth]);
const goToNextStep = () => {
if (!isFormValid) {
@@ -277,6 +267,7 @@ const PengajuanTempo = () => {
const address = await createPengajuanTempoApi({
id: idTempo,
user_id: auth.parentId,
+ partner_id: auth.partnerId,
section: label,
tempo_request: tempoRequest,
...formData,
@@ -297,7 +288,6 @@ const PengajuanTempo = () => {
const handleDaftarTempoDokumen = async () => {
for (const error of stepDivsError) {
if (error.length > 0) {
- console.log('iman_erro', error);
return;
}
}
@@ -315,6 +305,7 @@ const PengajuanTempo = () => {
const address = await createPengajuanTempoApi({
id: idTempo,
user_id: auth.parentId,
+ partner_id: auth.partnerId,
formDocs: JSON.stringify(formattedDokumen),
});
if (address.id) {
@@ -343,15 +334,14 @@ const PengajuanTempo = () => {
durasiTempo: product.durasiTempo,
creditLimit: product.creditLimit,
}));
- console.log('productOrder', productOrder);
const toastId = toast.loading('Mengirimkan formulir pengajuan tempo...');
setIsLoading(true);
try {
const address = await createPengajuanTempoApi({
id: idTempo,
user_id: auth.parentId,
+ partner_id: auth.partnerId,
formSupplier: JSON.stringify(productOrder),
- section,
});
if (address.id) {
setIdTempo(address.id);
@@ -402,7 +392,6 @@ const PengajuanTempo = () => {
setIsLoading(true);
try {
let address5;
- console.log('MASUK SINI');
const address = await createPengajuanTempoApi({
id: 0,
partner_id: auth.partnerId,
@@ -410,7 +399,6 @@ const PengajuanTempo = () => {
tempo_request: false,
...form,
});
- console.log('address', address);
if (address.id) {
const address2 = await createPengajuanTempoApi({
id: address.id,
@@ -447,12 +435,12 @@ const PengajuanTempo = () => {
}
}
}
- toast.dismiss(toastId);
- setIsLoading(false);
if (address5.id) {
- toast.success('Pengajuan tempo berhasil dilakukan');
const isUpdated = await editAuthTempo();
+ toast.dismiss(toastId);
+ setIsLoading(false);
+ toast.success('Pengajuan tempo berhasil dilakukan');
if (isUpdated?.user) {
setAuth(isUpdated.user);
toast.success('Berhasil mengubah status akun', { duration: 1000 });
--
cgit v1.2.3
From e9cd13307f0095dc4edc5048752675d80c551564 Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Fri, 6 Dec 2024 17:06:26 +0700
Subject: pengajuan tempo
---
.../pengajuan-tempo/component/PengajuanTempo.jsx | 235 ++++++++++++++-------
1 file changed, 159 insertions(+), 76 deletions(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index 1704556e..82b64df7 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -27,6 +27,8 @@ import { toast } from 'react-hot-toast';
import useDevice from '@/core/hooks/useDevice';
import odooApi from '~/libs/odooApi';
import editAuthTempo from '../api/editAuthTempo';
+import BottomPopup from '@/core/components/elements/Popup/BottomPopup';
+import PageContent from '@/lib/content/components/PageContent';
const PengajuanTempo = () => {
const { isDesktop, isMobile } = useDevice();
const [currentStep, setCurrentStep] = React.useState(0);
@@ -137,7 +139,7 @@ const PengajuanTempo = () => {
validateKontakPerson();
validatePengiriman();
validateDokumen();
- updateHasSave(false);
+ updateHasSave(true);
if (isFormValid) {
window.scrollTo({
top: 0,
@@ -175,7 +177,8 @@ const PengajuanTempo = () => {
'GET',
`/api/v1/partner/detail-tempo/${auth.parentId}`
);
-
+ console.log('original data', dataPaymentTerm);
+ const transformedData = transformKeysToCamelCase(dataPaymentTerm);
setBigData(transformedData);
} catch (error) {
console.error('Error loading dataPaymentTerm:', error);
@@ -213,6 +216,7 @@ const PengajuanTempo = () => {
? JSON.stringify(bigData[key]) // Untuk objek atau array
: String(bigData[key]); // Untuk tipe primitif
// Kirim data yang sudah diubah ke string ke stepDivsUpdateForm
+ console.log('key', key, stringData);
stepDivsUpdateForm[currentStep](key, stringData);
}
});
@@ -225,7 +229,7 @@ const PengajuanTempo = () => {
validatePengiriman();
validateDokumen();
validateSupplier();
- updateHasSave(false);
+ updateHasSave(true);
}, [currentStep, bigData, auth]);
const goToNextStep = () => {
@@ -291,15 +295,25 @@ const PengajuanTempo = () => {
return;
}
}
- const formattedDokumen = Object.entries(formDokumen).map(([key, doc]) => ({
- documentName: key,
- details: {
- name: doc.name,
- format: doc.format,
- base64: doc.base64,
- },
- }));
+
+ // Filter hanya dokumen dengan `format` yang tidak undefined
+ const formattedDokumen = Object.entries(formDokumen)
+ .filter(([_, doc]) => doc.format !== undefined) // Hanya dokumen dengan `format` tidak undefined
+ .map(([key, doc]) => ({
+ documentName: key,
+ details: {
+ name: doc.name,
+ format: doc.format,
+ base64: doc.base64,
+ },
+ }));
+
const toastId = toast.loading('Mengirimkan formulir pengajuan tempo...');
+ if (formattedDokumen.length === 0) {
+ // toast.error('Tidak ada dokumen valid untuk dikirim.');
+ return;
+ }
+
setIsLoading(true);
try {
const address = await createPengajuanTempoApi({
@@ -321,12 +335,30 @@ const PengajuanTempo = () => {
console.error(error);
}
};
+
+ const isSupplierDataChanged = (formSupplier, supplierIds) => {
+ if (formSupplier.length !== supplierIds.length) {
+ return true;
+ }
+ return formSupplier.some((supplier, index) => {
+ const original = supplierIds[index];
+ return (
+ supplier.supplier !== original.supplier ||
+ supplier.pic !== original.pic ||
+ supplier.telepon !== original.telepon ||
+ supplier.durasiTempo !== original.durasiTempo ||
+ supplier.creditLimit !== original.creditLimit
+ );
+ });
+ };
+
const handleDaftarTempoSupplier = async () => {
for (const error of stepDivsError) {
if (error.length > 0) {
return;
}
}
+
const productOrder = formSupplier.map((product) => ({
supplier: product.supplier,
pic: product.pic,
@@ -334,7 +366,13 @@ const PengajuanTempo = () => {
durasiTempo: product.durasiTempo,
creditLimit: product.creditLimit,
}));
+
+ // Periksa perubahan
const toastId = toast.loading('Mengirimkan formulir pengajuan tempo...');
+ if (!isSupplierDataChanged(productOrder, bigData.supplierIds)) {
+ return;
+ }
+
setIsLoading(true);
try {
const address = await createPengajuanTempoApi({
@@ -363,35 +401,23 @@ const PengajuanTempo = () => {
return;
}
}
- const productOrder = formSupplier.map((product) => ({
- supplier: product.supplier,
- pic: product.pic,
- telepon: product.telepon,
- durasiTempo: product.durasiTempo,
- creditLimit: product.creditLimit,
- }));
- const formattedDokumen = Object.entries(formDokumen).map(([key, doc]) => ({
- documentName: key,
- details: {
- name: doc.name,
- format: doc.format,
- base64: doc.base64,
- },
- }));
+ // Filter hanya dokumen dengan `format` yang tidak undefined
+ const formattedDokumen = Object.entries(formDokumen)
+ .filter(([_, doc]) => doc.format !== undefined) // Hanya dokumen dengan `format` tidak undefined
+ .map(([key, doc]) => ({
+ documentName: key,
+ details: {
+ name: doc.name,
+ format: doc.format,
+ base64: doc.base64,
+ },
+ }));
- // const data2 = {
- // user_id: auth.id,
- // ...form,
- // ...formKontakPerson,
- // ...formPengiriman,
- // formDocs: JSON.stringify(formattedDokumen),
- // formSupplier: JSON.stringify(productOrder),
- // };
const toastId = toast.loading('Mengirimkan formulir pengajuan tempo...');
setIsLoading(true);
try {
- let address5;
+ let address4;
const address = await createPengajuanTempoApi({
id: 0,
partner_id: auth.partnerId,
@@ -415,37 +441,29 @@ const PengajuanTempo = () => {
tempo_request: false,
...formPengiriman,
});
- if (address3.id) {
- const address4 = await createPengajuanTempoApi({
+ if (address3.id && formattedDokumen.length > 0) {
+ // Kirim dokumen yang sudah difilter
+ address4 = await createPengajuanTempoApi({
id: address3.id,
partner_id: auth.partnerId,
user_id: address3.userId,
- tempo_request: false,
+ tempo_request: true,
formDocs: JSON.stringify(formattedDokumen),
});
- if (address4.id) {
- address5 = await createPengajuanTempoApi({
- id: address4.id,
- partner_id: auth.partnerId,
- user_id: address4.userId,
- tempo_request: true,
- formSupplier: JSON.stringify(productOrder),
- });
- }
}
}
}
- if (address5.id) {
+ if (address4?.id) {
const isUpdated = await editAuthTempo();
toast.dismiss(toastId);
- setIsLoading(false);
- toast.success('Pengajuan tempo berhasil dilakukan');
if (isUpdated?.user) {
setAuth(isUpdated.user);
+ setIsLoading(false);
+ toast.success('Pengajuan tempo berhasil dilakukan');
toast.success('Berhasil mengubah status akun', { duration: 1000 });
removeFromLocalStorage();
- router.push('/pengajuan-tempo/finish?tempo_id=SO-2023-06480');
+ router.push('/pengajuan-tempo/finish');
return;
}
}
@@ -479,6 +497,14 @@ const PengajuanTempo = () => {
}
};
+ const [isCheckedTNC, setIsCheckedTNC] = useState(false);
+
+ const handleCheckChange = (checked) => {
+ setIsCheckedTNC(checked);
+ };
+ console.log('formSupplier', formSupplier);
+ console.log('!hassavedata', hasSavedata);
+ console.log('isCheckedTNC', isCheckedTNC);
return (
<>
@@ -507,45 +533,102 @@ const PengajuanTempo = () => {
className={`flex ${
isMobile
? 'flex-col justify-start items-start'
- : 'flex-row justify-end items-center'
- } gap-4 mb-8`}
+ : 'flex-col justify-end items-end'
+ } mb-8 gap-2`}
>
*Pastikan data yang anda masukan sudah benar dan sesuai
{currentStep < 5 && (
-
+ <>
+
+
+ Langkah Selanjutnya { }
+
+
+ >
+ )}
+ {currentStep == 5 && (
+
+
- Langkah Selanjutnya { }
+ Daftar Tempo { }
-
- )}
- {currentStep == 5 && (
-
- Daftar Tempo { }
-
+
)}
>
);
};
+const TempoTermCondition = ({ onCheckChange }) => {
+ const [isCheckedTNC, SetIsCheckedTNC] = useState(false);
+ const [openTNC, SetOpenTNC] = useState(false);
+
+ const openTNCHandle = () => {
+ SetOpenTNC(!openTNC);
+ };
+
+ const toggleCheckTNC = () => {
+ const newValue = !isCheckedTNC;
+ SetIsCheckedTNC(newValue);
+ if (onCheckChange) {
+ onCheckChange(newValue);
+ }
+ };
+ return (
+ <>
+
+
+
+
+ Dengan ini saya menyetujui
+ {' '}
+
+ syarat dan ketentuan
+
+
+ yang berlaku
+
+
+
+
+
SetOpenTNC(false)}
+ title='Syarat & Ketentuan Pendaftaran Tempo'
+ >
+
+
+ >
+ );
+};
export default PengajuanTempo;
--
cgit v1.2.3
From f2451beed670dc697aa2026b2df6ad1ad1e90da2 Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Mon, 9 Dec 2024 15:00:45 +0700
Subject: update pengajuan tempo
---
src/lib/pengajuan-tempo/component/PengajuanTempo.jsx | 13 +++++--------
1 file changed, 5 insertions(+), 8 deletions(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index 82b64df7..58794b31 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -177,7 +177,6 @@ const PengajuanTempo = () => {
'GET',
`/api/v1/partner/detail-tempo/${auth.parentId}`
);
- console.log('original data', dataPaymentTerm);
const transformedData = transformKeysToCamelCase(dataPaymentTerm);
setBigData(transformedData);
} catch (error) {
@@ -216,7 +215,6 @@ const PengajuanTempo = () => {
? JSON.stringify(bigData[key]) // Untuk objek atau array
: String(bigData[key]); // Untuk tipe primitif
// Kirim data yang sudah diubah ke string ke stepDivsUpdateForm
- console.log('key', key, stringData);
stepDivsUpdateForm[currentStep](key, stringData);
}
});
@@ -369,8 +367,10 @@ const PengajuanTempo = () => {
// Periksa perubahan
const toastId = toast.loading('Mengirimkan formulir pengajuan tempo...');
- if (!isSupplierDataChanged(productOrder, bigData.supplierIds)) {
- return;
+ if (bigData.supplierIds) {
+ if (!isSupplierDataChanged(productOrder, bigData.supplierIds)) {
+ return;
+ }
}
setIsLoading(true);
@@ -456,9 +456,9 @@ const PengajuanTempo = () => {
if (address4?.id) {
const isUpdated = await editAuthTempo();
- toast.dismiss(toastId);
if (isUpdated?.user) {
setAuth(isUpdated.user);
+ toast.dismiss(toastId);
setIsLoading(false);
toast.success('Pengajuan tempo berhasil dilakukan');
toast.success('Berhasil mengubah status akun', { duration: 1000 });
@@ -502,9 +502,6 @@ const PengajuanTempo = () => {
const handleCheckChange = (checked) => {
setIsCheckedTNC(checked);
};
- console.log('formSupplier', formSupplier);
- console.log('!hassavedata', hasSavedata);
- console.log('isCheckedTNC', isCheckedTNC);
return (
<>
--
cgit v1.2.3
From 0f84963214ee6dc5b5a44d945540826a66bec9e0 Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Wed, 11 Dec 2024 11:51:45 +0700
Subject: update pengajuan tempo
---
.../pengajuan-tempo/component/PengajuanTempo.jsx | 25 ++++++++++++++++------
1 file changed, 19 insertions(+), 6 deletions(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index 58794b31..aff49373 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -178,6 +178,7 @@ const PengajuanTempo = () => {
`/api/v1/partner/detail-tempo/${auth.parentId}`
);
const transformedData = transformKeysToCamelCase(dataPaymentTerm);
+
setBigData(transformedData);
} catch (error) {
console.error('Error loading dataPaymentTerm:', error);
@@ -454,16 +455,28 @@ const PengajuanTempo = () => {
}
}
+ toast.dismiss(toastId);
+ setIsLoading(false);
+ toast.success('Pengajuan tempo berhasil dilakukan');
if (address4?.id) {
+ const toastId = toast.loading('Mengubah status akun...');
+ setIsLoading(true);
const isUpdated = await editAuthTempo();
if (isUpdated?.user) {
- setAuth(isUpdated.user);
- toast.dismiss(toastId);
- setIsLoading(false);
- toast.success('Pengajuan tempo berhasil dilakukan');
- toast.success('Berhasil mengubah status akun', { duration: 1000 });
+ const update = await setAuth(isUpdated.user);
+ if (update) {
+ toast.dismiss(toastId);
+ setIsLoading(false);
+ toast.success('Berhasil mengubah status akun', { duration: 1000 });
+ router.push('/pengajuan-tempo/finish');
+ } else {
+ toast.dismiss(toastId);
+ setIsLoading(false);
+ toast.success('Pengajuan tempo berhasil dilakukan');
+ toast.error('Gagal mengubah status akun', { duration: 1000 });
+ router.push('/pengajuan-tempo');
+ }
removeFromLocalStorage();
- router.push('/pengajuan-tempo/finish');
return;
}
}
--
cgit v1.2.3
From 915dc67e1ce31eab1f2415cc8df95cebb75a137d Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Fri, 13 Dec 2024 14:18:03 +0700
Subject: update pengajuan tempo request
---
.../pengajuan-tempo/component/PengajuanTempo.jsx | 23 +++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index aff49373..b4f4ac9b 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -178,7 +178,6 @@ const PengajuanTempo = () => {
`/api/v1/partner/detail-tempo/${auth.parentId}`
);
const transformedData = transformKeysToCamelCase(dataPaymentTerm);
-
setBigData(transformedData);
} catch (error) {
console.error('Error loading dataPaymentTerm:', error);
@@ -419,6 +418,7 @@ const PengajuanTempo = () => {
setIsLoading(true);
try {
let address4;
+ let address3;
const address = await createPengajuanTempoApi({
id: 0,
partner_id: auth.partnerId,
@@ -435,7 +435,7 @@ const PengajuanTempo = () => {
...formKontakPerson,
});
if (address2.id) {
- const address3 = await createPengajuanTempoApi({
+ address3 = await createPengajuanTempoApi({
id: address2.id,
partner_id: auth.partnerId,
user_id: address2.userId,
@@ -451,16 +451,20 @@ const PengajuanTempo = () => {
tempo_request: true,
formDocs: JSON.stringify(formattedDokumen),
});
+ } else {
+ address4 = await createPengajuanTempoApi({
+ id: address3.id,
+ partner_id: auth.partnerId,
+ user_id: address3.userId,
+ tempo_request: true,
+ });
}
}
}
- toast.dismiss(toastId);
- setIsLoading(false);
- toast.success('Pengajuan tempo berhasil dilakukan');
if (address4?.id) {
+ toast.success('Pengajuan tempo berhasil dilakukan');
const toastId = toast.loading('Mengubah status akun...');
- setIsLoading(true);
const isUpdated = await editAuthTempo();
if (isUpdated?.user) {
const update = await setAuth(isUpdated.user);
@@ -479,6 +483,11 @@ const PengajuanTempo = () => {
removeFromLocalStorage();
return;
}
+ } else {
+ toast.dismiss(toastId);
+ setIsLoading(false);
+
+ toast.error('Terjadi kesalahan dalam pengiriman formulir');
}
} catch (error) {
toast.dismiss(toastId);
@@ -518,7 +527,7 @@ const PengajuanTempo = () => {
return (
<>
-
+
Form Pengajuan Tempo
--
cgit v1.2.3
From 0178a1f88d7d34824562e1413be073c0795a47cf Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Mon, 16 Dec 2024 17:42:31 +0700
Subject: update code
---
.../pengajuan-tempo/component/PengajuanTempo.jsx | 95 +++++++++++++++++-----
1 file changed, 73 insertions(+), 22 deletions(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index b4f4ac9b..f5cad812 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -253,6 +253,29 @@ const PengajuanTempo = () => {
setCurrentStep((prev) => (prev === NUMBER_OF_STEPS - 1 ? prev : prev + 1));
};
+ const goPrevStep = () => {
+ // if (!isFormValid) {
+ // setNotValid(true);
+ // setButtonSubmitClick(!buttonSubmitClick);
+ // return;
+ // } else {
+ // // saveToLocalStorage(stepLabels[currentStep], stepDivsForm[currentStep]);
+ // if (currentStep == 3) {
+ // handleDaftarTempoSupplier();
+ // } else if (currentStep == 4) {
+ // handleDaftarTempoDokumen();
+ // } else {
+ // handleDaftarTempoPerPage(
+ // stepLabels[currentStep],
+ // stepDivsForm[currentStep]
+ // );
+ // }
+ // setButtonSubmitClick(!buttonSubmitClick);
+ // setNotValid(false);
+ // }
+ setCurrentStep((prev) => (prev === NUMBER_OF_STEPS - 1 ? prev : prev - 1));
+ };
+
const handleDaftarTempoPerPage = async (
label,
formData,
@@ -558,30 +581,57 @@ const PengajuanTempo = () => {
*Pastikan data yang anda masukan sudah benar dan sesuai
- {currentStep < 5 && (
- <>
- 0 && currentStep < 5
+ ? 'justify-between'
+ : 'justify-end'
+ } items-center w-full ${isMobile ? 'gap-x-4 ' : ''}`}
+ >
+ {currentStep < 5 && currentStep > 0 && (
+
- }
+
+ Langkah Sebelumnya
+
+
+ )}
+ {currentStep < 5 && (
+ <>
+
- Langkah Selanjutnya { }
-
-
- >
- )}
+
+
+ Langkah Selanjutnya
+
+ { }
+
+
+ >
+ )}
+
{currentStep == 5 && (
-
+
{
const TempoTermCondition = ({ onCheckChange }) => {
const [isCheckedTNC, SetIsCheckedTNC] = useState(false);
const [openTNC, SetOpenTNC] = useState(false);
+ const { isDesktop, isMobile } = useDevice();
const openTNCHandle = () => {
SetOpenTNC(!openTNC);
@@ -623,7 +674,7 @@ const TempoTermCondition = ({ onCheckChange }) => {
isChecked={isCheckedTNC}
onChange={toggleCheckTNC}
/>
-
+
Dengan ini saya menyetujui
{' '}
--
cgit v1.2.3
From aea914d21c16f53a1c28122b9b9a135439443ba6 Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Tue, 17 Dec 2024 11:38:03 +0700
Subject: update pengajuan tempo
---
.../pengajuan-tempo/component/PengajuanTempo.jsx | 29 ++++++++++++++--------
1 file changed, 19 insertions(+), 10 deletions(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index f5cad812..ccd63856 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -33,7 +33,7 @@ const PengajuanTempo = () => {
const { isDesktop, isMobile } = useDevice();
const [currentStep, setCurrentStep] = React.useState(0);
const NUMBER_OF_STEPS = 6;
- const [isLoading, setIsLoading] = useState(false);
+ const [isLoading, setIsLoading] = useState(true);
const [bigData, setBigData] = useState();
const [idTempo, setIdTempo] = useState(0);
const { form, errors, validate, updateForm } = usePengajuanTempoStore();
@@ -547,22 +547,31 @@ const PengajuanTempo = () => {
const handleCheckChange = (checked) => {
setIsCheckedTNC(checked);
};
+ if (isLoading && !bigData) {
+ return;
+ }
+ console.log('bigData', bigData);
return (
<>
Form Pengajuan Tempo
-
- Lorem ipsum dolor sit amet consectetur. Commodo suspendisse at enim
- magnis ut quisque rhoncus. Felis volutpat fringilla sollicitudin
- ultricies. Enim non eget in lorem netus. Nisl pharetra accumsan diam
- suspendisse.
+
+ Pembayaran tempo adalah layanan pembayaran berjangka yang difasilitasi
+ indoteknik.com untuk konsumen akun bisnis yang terdaftar dengan waktu
+ pembayaran mulai dari 7, 14, 21 hingga 30 Hari.
-
+
-
+
@@ -595,7 +604,7 @@ const PengajuanTempo = () => {
onClick={goPrevStep}
>
{
}
-
+
Langkah Sebelumnya
@@ -674,7 +683,7 @@ const TempoTermCondition = ({ onCheckChange }) => {
isChecked={isCheckedTNC}
onChange={toggleCheckTNC}
/>
-
+
Dengan ini saya menyetujui
{' '}
--
cgit v1.2.3
From 92c6c99e3b65b1770b02c2fd63c9c943f99cfda2 Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Tue, 17 Dec 2024 11:39:30 +0700
Subject: delete console log
---
src/lib/pengajuan-tempo/component/PengajuanTempo.jsx | 1 -
1 file changed, 1 deletion(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index ccd63856..d7c1dfac 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -550,7 +550,6 @@ const PengajuanTempo = () => {
if (isLoading && !bigData) {
return;
}
- console.log('bigData', bigData);
return (
<>
--
cgit v1.2.3
From dd8a56ad12d054e121965c41bcb077158690b208 Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Tue, 17 Dec 2024 17:07:44 +0700
Subject: update code
---
src/lib/pengajuan-tempo/component/PengajuanTempo.jsx | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index d7c1dfac..22227624 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -33,7 +33,7 @@ const PengajuanTempo = () => {
const { isDesktop, isMobile } = useDevice();
const [currentStep, setCurrentStep] = React.useState(0);
const NUMBER_OF_STEPS = 6;
- const [isLoading, setIsLoading] = useState(true);
+ const [isLoading, setIsLoading] = useState(false);
const [bigData, setBigData] = useState();
const [idTempo, setIdTempo] = useState(0);
const { form, errors, validate, updateForm } = usePengajuanTempoStore();
@@ -547,9 +547,10 @@ const PengajuanTempo = () => {
const handleCheckChange = (checked) => {
setIsCheckedTNC(checked);
};
- if (isLoading && !bigData) {
- return;
- }
+ // if (isLoading && !bigData) {
+ // return;
+ // }
+ console.log('bigData', bigData);
return (
<>
--
cgit v1.2.3
From daa0b872601789815513508d48a14cbd8e1f6518 Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Mon, 23 Dec 2024 13:39:47 +0700
Subject: update pengajuan tempo
---
src/lib/pengajuan-tempo/component/PengajuanTempo.jsx | 1 -
1 file changed, 1 deletion(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index 22227624..dbf2c606 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -550,7 +550,6 @@ const PengajuanTempo = () => {
// if (isLoading && !bigData) {
// return;
// }
- console.log('bigData', bigData);
return (
<>
--
cgit v1.2.3
From 7f92d22feb841e1405e56505c742f90cbd365ffc Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Mon, 30 Dec 2024 15:49:18 +0700
Subject: update pengajuan tempo
---
.../pengajuan-tempo/component/PengajuanTempo.jsx | 40 ++++++++++++----------
1 file changed, 22 insertions(+), 18 deletions(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index dbf2c606..be994171 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -1,5 +1,6 @@
import React from 'react';
import { useMemo, useState, useEffect, useRef } from 'react';
+import Image from '~/components/ui/image';
import Stepper from './Stepper';
import InformasiPerusahaan from './informasiPerusahaan';
import KontakPerusahaan from './KontakPerusahaan';
@@ -40,6 +41,7 @@ const PengajuanTempo = () => {
const { control, watch, setValue } = useForm();
const auth = useAuth();
const router = useRouter();
+ const [BannerTempo, setBannerTempo] = useState();
const { formDokumen, errorsDokumen, validateDokumen, updateFormDokumen } =
usePengajuanTempoStoreDokumen();
const {
@@ -521,21 +523,6 @@ const PengajuanTempo = () => {
}
};
- const goToPreviousStep = () => {
- setCurrentStep((prev) => (prev <= 0 ? prev : prev - 1));
- };
-
- const saveToLocalStorage = (key, form) => {
- localStorage.setItem(key, JSON.stringify(form));
- };
-
- const getFromLocalStorage = (key) => {
- const itemStr = localStorage.getItem(key);
- if (!itemStr) return null;
-
- const item = JSON.parse(itemStr);
- return item;
- };
const removeFromLocalStorage = () => {
for (const key of stepLabels) {
localStorage.removeItem(key);
@@ -547,12 +534,29 @@ const PengajuanTempo = () => {
const handleCheckChange = (checked) => {
setIsCheckedTNC(checked);
};
- // if (isLoading && !bigData) {
- // return;
- // }
+
+ useEffect(() => {
+ const getBanner = async () => {
+ const get = await odooApi('GET', '/api/v1/banner?type=banner-form-tempo');
+ // setBannerTempo(get[0].image);
+ setBannerTempo(
+ 'http://192.168.23.244:8069/api/image/x_banner.banner/x_banner_image/479'
+ );
+ };
+ getBanner();
+ }, []);
return (
<>
+ {BannerTempo && (
+
+ )}
Form Pengajuan Tempo
--
cgit v1.2.3
From 51b7b4cd945f78ebeabdbfcd4842c9ea83cb3efc Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Tue, 31 Dec 2024 08:58:23 +0700
Subject: update
---
src/lib/pengajuan-tempo/component/PengajuanTempo.jsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index be994171..97cf506e 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -540,7 +540,7 @@ const PengajuanTempo = () => {
const get = await odooApi('GET', '/api/v1/banner?type=banner-form-tempo');
// setBannerTempo(get[0].image);
setBannerTempo(
- 'http://192.168.23.244:8069/api/image/x_banner.banner/x_banner_image/479'
+ 'https://erp.indoteknik.com/api/image/x_banner.banner/x_banner_image/431'
);
};
getBanner();
--
cgit v1.2.3
From d2db20214556b9e8604c2515593dedcae2aed518 Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Tue, 14 Jan 2025 17:01:28 +0700
Subject: update source banner
---
src/lib/pengajuan-tempo/component/PengajuanTempo.jsx | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index 97cf506e..018668b6 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -538,10 +538,10 @@ const PengajuanTempo = () => {
useEffect(() => {
const getBanner = async () => {
const get = await odooApi('GET', '/api/v1/banner?type=banner-form-tempo');
- // setBannerTempo(get[0].image);
- setBannerTempo(
- 'https://erp.indoteknik.com/api/image/x_banner.banner/x_banner_image/431'
- );
+ setBannerTempo(get[0].image);
+ // setBannerTempo(
+ // 'https://erp.indoteknik.com/api/image/x_banner.banner/x_banner_image/431'
+ // );
};
getBanner();
}, []);
--
cgit v1.2.3
From 68e1d6e55b6d38d86c2b3332268fb508de0a2db8 Mon Sep 17 00:00:00 2001
From: it-fixcomart
Date: Thu, 16 Jan 2025 09:13:04 +0700
Subject: comment compres file
---
src/lib/pengajuan-tempo/component/PengajuanTempo.jsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'src/lib/pengajuan-tempo/component/PengajuanTempo.jsx')
diff --git a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
index 018668b6..5bef5134 100644
--- a/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
+++ b/src/lib/pengajuan-tempo/component/PengajuanTempo.jsx
@@ -392,7 +392,7 @@ const PengajuanTempo = () => {
// Periksa perubahan
const toastId = toast.loading('Mengirimkan formulir pengajuan tempo...');
- if (bigData.supplierIds) {
+ if (bigData?.supplierIds) {
if (!isSupplierDataChanged(productOrder, bigData.supplierIds)) {
return;
}
--
cgit v1.2.3