diff options
| author | it-fixcomart <it@fixcomart.co.id> | 2024-11-25 17:04:51 +0700 |
|---|---|---|
| committer | it-fixcomart <it@fixcomart.co.id> | 2024-11-25 17:04:51 +0700 |
| commit | 494909f40b918e4273d6258a74f12ac42253a4a7 (patch) | |
| tree | 08b3bfa4a60f318c71980f3a26d4d86da996f8d9 /src | |
| parent | b94c0181d2e8b3b1f8a48879a059813d213b09d5 (diff) | |
<iman> pengajuan tempo
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/pengajuan-tempo/component/PengajuanTempo.jsx | 16 | ||||
| -rw-r--r-- | src/lib/pengajuan-tempo/component/Pengiriman.jsx | 125 | ||||
| -rw-r--r-- | src/lib/pengajuan-tempo/component/Referensi.jsx | 20 |
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 && ( |
