summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2024-11-25 17:04:51 +0700
committerit-fixcomart <it@fixcomart.co.id>2024-11-25 17:04:51 +0700
commit494909f40b918e4273d6258a74f12ac42253a4a7 (patch)
tree08b3bfa4a60f318c71980f3a26d4d86da996f8d9 /src/lib
parentb94c0181d2e8b3b1f8a48879a059813d213b09d5 (diff)
<iman> pengajuan tempo
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/pengajuan-tempo/component/PengajuanTempo.jsx16
-rw-r--r--src/lib/pengajuan-tempo/component/Pengiriman.jsx125
-rw-r--r--src/lib/pengajuan-tempo/component/Referensi.jsx20
3 files changed, 51 insertions, 110 deletions
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}
/>,
<Dokumen
key='dokumen'
@@ -192,7 +193,6 @@ const PengajuanTempo = () => {
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,
diff --git a/src/lib/pengajuan-tempo/component/Pengiriman.jsx b/src/lib/pengajuan-tempo/component/Pengiriman.jsx
index 0c96c060..7b0a9455 100644
--- a/src/lib/pengajuan-tempo/component/Pengiriman.jsx
+++ b/src/lib/pengajuan-tempo/component/Pengiriman.jsx
@@ -33,49 +33,19 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
const [tukarInvoicePembayaran, setTukarInvoicePembayaran] = useState(false);
const [selectedRadio, setSelectedRadio] = useState('');
const [selectedRadioInvoice, setSelectedRadioInvoice] = useState('');
- const dokumen_kirim = [
- ['Surat Tanda Terima Barang (STTB)', '0'],
- ['Good Receipt (GR)', '1'],
- ['Surat Terima Barang (STB)', '2'],
- ['Lembar Penerimaan Barang (LPB)', '3'],
- ];
- const Dokumen_invoice = [
- ['Invoice Pembelian', '0'],
- ['Surat Jalan', '1'],
- ['Berita Acara Serah Terima (BAST)', '2'],
- ['Faktur Pajak', '3'],
- ['Good Receipt (GR)', '4'],
- ];
- const [selectedIds, setSelectedIds] = useState(() => {
- if (formPengiriman.dokumenPengiriman) {
- const selectedDocuments = formPengiriman.dokumenPengiriman
- .split(',')
- .map((item) => item.trim());
-
- return selectedDocuments.map((docName) => {
- const match = dokumen_kirim.find(([name]) => name === docName);
- return match ? Number(match[1]) : 5; // Jika cocok, gunakan ID; jika tidak, gunakan 5
- });
- }
- return [];
- });
- const [selectedIdsDokumenInvoice, setSelectedIdsDokumenInvoice] = useState(
- () => {
- if (formPengiriman.dokumenPengirimanInvoice) {
- // Pisahkan string dokumen berdasarkan koma dan hilangkan spasi ekstra
- const selectedDocuments = formPengiriman.dokumenPengirimanInvoice
- .split(',')
- .map((item) => item.trim());
- // Cari ID berdasarkan posisi nama dokumen di array Dokumen_invoice
- return selectedDocuments.map((docName) => {
- const match = Dokumen_invoice.find(([name]) => name === docName);
- return match ? Number(match[1]) : 5; // Jika cocok, gunakan ID; jika tidak, gunakan 5
- });
- }
- return [];
- }
+ const [selectedIds, setSelectedIds] = useState(
+ formPengiriman.dokumenPengiriman
+ ? formPengiriman.dokumenPengiriman.split(',').map(Number)
+ : []
);
+ console.log('selectedIds', selectedIds);
+ const [selectedIdsDokumenInvoice, setSelectedIdsselectedIdsDokumenInvoice] =
+ useState(
+ formPengiriman.dokumenPengirimanInvoice
+ ? formPengiriman.dokumenPengirimanInvoice.split(',').map(Number)
+ : []
+ );
const handleCheckboxChange = (id) => {
const updatedSelected = selectedIds.includes(id)
@@ -94,7 +64,7 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
? selectedIdsDokumenInvoice.filter((selectedId) => selectedId !== id)
: [...selectedIdsDokumenInvoice, id];
- setSelectedIdsDokumenInvoice(updatedSelected);
+ setSelectedIdsselectedIdsDokumenInvoice(updatedSelected);
// Jika checkbox 'Lainnya' dipilih, aktifkan input custom
@@ -104,37 +74,14 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
useEffect(() => {
if (formPengiriman.dokumenPengiriman) {
- // Pisahkan string berdasarkan koma dan trim spasi
- const selectedDocuments = formPengiriman.dokumenPengiriman
- .split(',')
- .map((item) => item.trim());
-
- // Map setiap dokumen, cocokkan nama dokumen dengan ID yang sesuai, atau set ke 5 jika tidak cocok
- const matchingIds = selectedDocuments.map((docName) => {
- const match = dokumen_kirim.find(([name]) => name === docName);
- return match ? Number(match[1]) : 5; // Jika cocok gunakan ID; jika tidak, gunakan 5
- });
-
- // Set hasil ID yang sesuai atau default ke state selectedIds
- setSelectedIds(matchingIds);
+ setSelectedIds(formPengiriman.dokumenPengiriman.split(',').map(Number)); // Parse string menjadi array angka
}
}, [formPengiriman.dokumenPengiriman]);
-
useEffect(() => {
if (formPengiriman.dokumenPengirimanInvoice) {
- // Pisahkan string berdasarkan koma dan trim spasi
- const selectedDocuments = formPengiriman.dokumenPengirimanInvoice
- .split(',')
- .map((item) => item.trim());
-
- // Temukan ID berdasarkan posisi dokumen di dalam array Dokumen_invoice
- const matchingIds = selectedDocuments.map((docName) => {
- const match = Dokumen_invoice.find(([name]) => name === docName);
- return match ? Number(match[1]) : 5; // Jika cocok gunakan ID; jika tidak, gunakan 5
- });
-
- // Set hasil ID yang cocok ke state selectedIdsDokumenInvoice
- setSelectedIdsDokumenInvoice(matchingIds);
+ setSelectedIdsselectedIdsDokumenInvoice(
+ formPengiriman.dokumenPengirimanInvoice.split(',').map(Number)
+ ); // Parse string menjadi array angka
}
}, [formPengiriman.dokumenPengirimanInvoice]);
@@ -424,7 +371,7 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
setValue('statePengiriman', '');
setValue('cityPengiriman', '');
}
- updateFormPengiriman('isSameAddrees', `${sameAddress}`);
+ updateFormPengiriman('isSameAddreesStreet', `${sameAddressStreet}`);
validatePengiriman();
}, [sameAddressStreet]);
@@ -901,10 +848,8 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
<Checkbox
colorScheme='red'
key='0'
- isChecked={isChecked('Surat Tanda Terima Barang (STTB)')}
- onChange={() =>
- handleCheckboxChange('Surat Tanda Terima Barang (STTB)')
- }
+ isChecked={isChecked(0)}
+ onChange={() => handleCheckboxChange(0)}
>
Surat Tanda Terima Barang (STTB)
</Checkbox>
@@ -912,7 +857,7 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
colorScheme='red'
key='1'
isChecked={isChecked(1)}
- onChange={() => handleCheckboxChange('Good Receipt (GR)')}
+ onChange={() => handleCheckboxChange(1)}
>
Good Receipt (GR)
</Checkbox>
@@ -920,9 +865,7 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
colorScheme='red'
key='2'
isChecked={isChecked(2)}
- onChange={() =>
- handleCheckboxChange('Surat Terima Barang (STB)')
- }
+ onChange={() => handleCheckboxChange(2)}
>
Surat Terima Barang (STB)
</Checkbox>
@@ -930,9 +873,7 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
colorScheme='red'
key='3'
isChecked={isChecked(3)}
- onChange={() =>
- handleCheckboxChange('Lembar Penerimaan Barang (LPB)')
- }
+ onChange={() => handleCheckboxChange(3)}
>
Lembar Penerimaan Barang (LPB)
</Checkbox>
@@ -942,7 +883,7 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
colorScheme='red'
key='4'
isChecked={isChecked(4)}
- onChange={() => handleCheckboxChange('Lainnya')}
+ onChange={() => handleCheckboxChange(4)}
>
Lainnya
</Checkbox>
@@ -985,9 +926,7 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
key='0'
isChecked={isCheckedInvoice(0)}
onChange={() =>
- handleCheckboxChangeDokumenPengirimanInvoice(
- 'Invoice Pembelian'
- )
+ handleCheckboxChangeDokumenPengirimanInvoice(0)
}
>
Invoice Pembelian
@@ -997,9 +936,7 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
key='1'
isChecked={isCheckedInvoice(1)}
onChange={() =>
- handleCheckboxChangeDokumenPengirimanInvoice(
- ' Surat Jalan'
- )
+ handleCheckboxChangeDokumenPengirimanInvoice(1)
}
>
Surat Jalan
@@ -1009,7 +946,7 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
key='2'
isChecked={isCheckedInvoice(2)}
onChange={() =>
- handleCheckboxChangeDokumenPengirimanInvoice('')
+ handleCheckboxChangeDokumenPengirimanInvoice(2)
}
>
Berita Acara Serah Terima (BAST)
@@ -1019,9 +956,7 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
key='3'
isChecked={isCheckedInvoice(3)}
onChange={() =>
- handleCheckboxChangeDokumenPengirimanInvoice(
- 'Faktur Pajak'
- )
+ handleCheckboxChangeDokumenPengirimanInvoice(3)
}
>
Faktur Pajak
@@ -1031,9 +966,7 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
key='4'
isChecked={isCheckedInvoice(4)}
onChange={() =>
- handleCheckboxChangeDokumenPengirimanInvoice(
- 'Good Receipt (GR)'
- )
+ handleCheckboxChangeDokumenPengirimanInvoice(4)
}
>
Good Receipt (GR)
@@ -1045,7 +978,7 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => {
key='5'
isChecked={isCheckedInvoice(5)}
onChange={() =>
- handleCheckboxChangeDokumenPengirimanInvoice('Lainnya')
+ handleCheckboxChangeDokumenPengirimanInvoice(5)
}
>
Lainnya
diff --git a/src/lib/pengajuan-tempo/component/Referensi.jsx b/src/lib/pengajuan-tempo/component/Referensi.jsx
index 17ac6cb0..b8c2f7eb 100644
--- a/src/lib/pengajuan-tempo/component/Referensi.jsx
+++ b/src/lib/pengajuan-tempo/component/Referensi.jsx
@@ -1,6 +1,9 @@
import React, { useState, useEffect, useMemo, useRef } from 'react';
import { useForm } from 'react-hook-form';
-import { usePengajuanTempoStoreSupplier } from '../../../../src-migrate/modules/register/stores/usePengajuanTempoStore';
+import {
+ usePengajuanTempoStoreSupplier,
+ usePengajuanTempoStore,
+} from '../../../../src-migrate/modules/register/stores/usePengajuanTempoStore';
import * as Yup from 'yup';
import { yupResolver } from '@hookform/resolvers/yup';
import { PlusCircleIcon } from '@heroicons/react/24/outline';
@@ -8,7 +11,7 @@ import useDevice from '@/core/hooks/useDevice';
import { Trash2Icon } from 'lucide-react';
import { ChevronDownIcon, ChevronUpIcon } from '@heroicons/react/24/outline';
const initialData = [];
-const Referensi = ({ chekValid, buttonSubmitClick }) => {
+const Referensi = ({ chekValid, buttonSubmitClick, data }) => {
const { isDesktop, isMobile } = useDevice();
const [openIndexes, setOpenIndexes] = useState([]);
@@ -25,6 +28,7 @@ const Referensi = ({ chekValid, buttonSubmitClick }) => {
});
const { formSupplier, updateFormSupplier, updateHasSave } =
usePengajuanTempoStoreSupplier();
+ const { form } = usePengajuanTempoStore();
const [formData, setFormData] = useState([
{
supplier: '',
@@ -153,10 +157,13 @@ const Referensi = ({ chekValid, buttonSubmitClick }) => {
return item;
};
useEffect(() => {
- const cachedData = getFromLocalStorage('Referensi');
- if (cachedData) {
- setSupplierData(cachedData);
- updateFormSupplier(cachedData);
+ console.log('supplierData', supplierData);
+ console.log('form supplier', formSupplier);
+ console.log('data', data);
+ // const cachedData = getFromLocalStorage('Referensi');
+ if (data) {
+ setSupplierData(data);
+ updateFormSupplier(data);
}
}, [buttonSubmitClick]);
@@ -169,6 +176,7 @@ const Referensi = ({ chekValid, buttonSubmitClick }) => {
prev.includes(index) ? prev.filter((i) => i !== index) : [...prev, index]
);
};
+
return (
<>
{isDesktop && (