From 6bbf1dbd94355f34f58f4b72f134f3dbeac776aa Mon Sep 17 00:00:00 2001 From: it-fixcomart Date: Sat, 23 Nov 2024 11:55:59 +0700 Subject: update tempo --- src/lib/pengajuan-tempo/component/Pengiriman.jsx | 438 +++++++++++++---------- 1 file changed, 253 insertions(+), 185 deletions(-) (limited to 'src/lib/pengajuan-tempo/component/Pengiriman.jsx') diff --git a/src/lib/pengajuan-tempo/component/Pengiriman.jsx b/src/lib/pengajuan-tempo/component/Pengiriman.jsx index 842e43ef..adf2ee37 100644 --- a/src/lib/pengajuan-tempo/component/Pengiriman.jsx +++ b/src/lib/pengajuan-tempo/component/Pengiriman.jsx @@ -5,7 +5,11 @@ import odooApi from '~/libs/odooApi'; import stateApi from '@/lib/address/api/stateApi.js'; import cityApi from '@/lib/address/api/cityApi'; import { Radio, RadioGroup, Stack, Checkbox } from '@chakra-ui/react'; -import { usePengajuanTempoStorePengiriman } from '../../../../src-migrate/modules/register/stores/usePengajuanTempoStore'; +import { + usePengajuanTempoStorePengiriman, + usePengajuanTempoStore, +} from '../../../../src-migrate/modules/register/stores/usePengajuanTempoStore'; + import useDevice from '@/core/hooks/useDevice'; const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { const { control, watch, setValue } = useForm(); @@ -16,15 +20,20 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { validatePengiriman, updateFormPengiriman, } = usePengajuanTempoStorePengiriman(); + const { form, errors, validate, updateForm } = usePengajuanTempoStore(); const [states, setState] = useState([]); const [cities, setCities] = useState([]); const [sameAddress, setSameAddress] = useState(false); + const [sameAddressStreet, setSameAddressStreet] = useState(false); const [everyWeekday, setEveryWeekday] = useState(false); const [everyWeek, setEveryWeek] = useState(false); const [tukarInvoice, setTukarInvoice] = useState(false); const [everyWeekdayPembayaran, setEveryWeekdayPembayaran] = useState(false); const [everyWeekPembayaran, setEveryWeekPembayaran] = useState(false); const [tukarInvoicePembayaran, setTukarInvoicePembayaran] = useState(false); + const [selectedRadio, setSelectedRadio] = useState(''); + const [selectedRadioInvoice, setSelectedRadioInvoice] = useState(''); + const [selectedIds, setSelectedIds] = useState( formPengiriman.dokumenPengiriman ? formPengiriman.dokumenPengiriman.split(',').map(Number) @@ -121,7 +130,29 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { updateFormPengiriman(name, value); validatePengiriman(); }; - + const handleRadioChange = (value) => { + console.log('value', value); + setSelectedRadio(value); + if (value == 'everyWeekday') { + setEveryWeekday(!everyWeekday); + } else if (value == 'everyWeek') { + setEveryWeek(!everyWeek); + } else { + setTukarInvoice(!tukarInvoice); + } + validatePengiriman(); + }; + const handleRadioChangeInvoice = (value) => { + setSelectedRadioInvoice(value); + if (value == 'everyWeekdayPembayaran') { + setEveryWeekdayPembayaran(!everyWeekdayPembayaran); + } else if (value == 'everyWeekPembayaran') { + setEveryWeekPembayaran(!everyWeekPembayaran); + } else { + setTukarInvoicePembayaran(!tukarInvoicePembayaran); + } + validatePengiriman(); + }; const handleEveryWeekday = () => { setEveryWeekday(!everyWeekday); }; @@ -278,6 +309,15 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { setSameAddress(false); } } + if (formPengiriman.isSameAddreesStreet) { + const isSame = formPengiriman.isSameAddreesStreet; + if (isSame == 'true') { + setSameAddressStreet(true); + } else { + setSameAddressStreet(false); + } + } + validatePengiriman(); }, [buttonSubmitClick]); useEffect(() => { if (formPengiriman.isSameAddrees) { @@ -288,7 +328,16 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { setSameAddress(false); } } - }, [formPengiriman.isSameAddrees]); + if (formPengiriman.isSameAddreesStreet) { + const isSame = formPengiriman.isSameAddreesStreet; + if (isSame == 'true') { + setSameAddressStreet(true); + } else { + setSameAddressStreet(false); + } + } + validatePengiriman(); + }, [formPengiriman.isSameAddrees, formPengiriman.isSameAddreesStreet]); useEffect(() => { if (sameAddress) { updateFormPengiriman('streetInvoice', formPengiriman.streetPengiriman); @@ -306,6 +355,25 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { validatePengiriman(); }, [sameAddress]); + useEffect(() => { + if (sameAddressStreet) { + updateFormPengiriman('streetPengiriman', form.street); + updateFormPengiriman('statePengiriman', form.state); + updateFormPengiriman('cityPengiriman', form.city); + updateFormPengiriman('zipPengiriman', form.zip); + } else { + updateFormPengiriman('streetPengiriman', ''); + updateFormPengiriman('statePengiriman', ''); + updateFormPengiriman('cityPengiriman', ''); + updateFormPengiriman('zipPengiriman', ''); + setValue('streetPengiriman', ''); + setValue('statePengiriman', ''); + setValue('cityPengiriman', ''); + } + updateFormPengiriman('isSameAddrees', `${sameAddress}`); + validatePengiriman(); + }, [sameAddressStreet]); + const getFromLocalStorage = (key) => { const itemStr = localStorage.getItem(key); if (!itemStr) return null; @@ -380,6 +448,11 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { const handleChangeSameAddress = () => { setSameAddress(!sameAddress); }; + const handleChangeSameAddressStreet = () => { + setSameAddressStreet(!sameAddressStreet); + }; + console.log('formPengiriman', formPengiriman); + console.log('errorsPengiriman', errorsPengiriman); return ( <> {isDesktop && ( @@ -428,79 +501,90 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { )}
-
- - {chekValid && ( -
- {errorsPengiriman.streetPengiriman} + + Alamat Pengiriman sama dengan alamat pengiriman + + {!sameAddressStreet && ( + <> +
+ + {chekValid && ( +
+ {errorsPengiriman.streetPengiriman} +
+ )}
- )} -
-
-
- ( - +
+ ( + + )} /> - )} - /> - {chekValid && ( -
- {errorsPengiriman.statePengiriman} + {chekValid && ( +
+ {errorsPengiriman.statePengiriman} +
+ )}
- )} -
-
- ( - + ( + + )} /> - )} - /> - {chekValid && ( -
- {errorsPengiriman.cityPengiriman} + {chekValid && ( +
+ {errorsPengiriman.cityPengiriman} +
+ )}
- )} -
-
- - {chekValid && ( -
- {errorsPengiriman.zipPengiriman} +
+ + {chekValid && ( +
+ {errorsPengiriman.zipPengiriman} +
+ )}
- )} -
-
+
+ + )}
@@ -628,64 +712,56 @@ const Pengiriman = ({ chekValid, buttonSubmitClick, isKonfirmasi }) => { )}
-
- - Setiap Minggu dihari - - -
-
- - Setiap Bulan di minggu ke - - -
-
- - Lainnya - -