From d725e36151eea62ace5e1136e7963600da0394f0 Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Fri, 12 May 2023 16:14:53 +0700 Subject: fedback testing --- src/lib/checkout/components/Checkout.jsx | 214 +++++++++++++++++++------------ 1 file changed, 129 insertions(+), 85 deletions(-) (limited to 'src/lib') diff --git a/src/lib/checkout/components/Checkout.jsx b/src/lib/checkout/components/Checkout.jsx index b51c9b34..03d3e2d9 100644 --- a/src/lib/checkout/components/Checkout.jsx +++ b/src/lib/checkout/components/Checkout.jsx @@ -69,13 +69,21 @@ const Checkout = () => { const [listExpedisi, setExpedisi] = useState([]) const [listserviceExpedisi, setListServiceExpedisi] = useState([]) const [selectedExpedisi, setSelectedExpedisi] = useState(0) - const [biayaKirim, setBiayaKirim] = useState(null) + const [selectedCarrierId, setselectedCarrierId] = useState(0) + const [selectedCarrier, setselectedCarrier] = useState(0) + const [biayaKirim, setBiayaKirim] = useState(0) const [checkWeigth, setCheckWeight] = useState(false) + const [selectedServiceType, setSelectedServiceType] = useState(null) + const [selectedExpedisiService, setselectedExpedisiService] = useState(null) useEffect(() => { const loadExpedisi = async () => { let dataExpedisi = await ExpedisiList() - dataExpedisi = dataExpedisi.map((city) => ({ value: city.id, label: city.name })) + dataExpedisi = dataExpedisi.map((expedisi) => ({ + value: expedisi.id, + label: expedisi.name, + carrierId: expedisi.deliveryCarrierId + })) setExpedisi(dataExpedisi) } loadExpedisi() @@ -135,22 +143,47 @@ const Checkout = () => { origin: 155, destination: selectedAddress.shipping.rajaongkirCityId, weight: totalWeight, - courier: selectedExpedisi, + courier: selectedCarrier, originType: 'city', destinationType: 'city' } setBiayaKirim(0) const dataService = await axios('/api/rajaongkir-service?body=' + JSON.stringify(body)) setListServiceExpedisi(dataService.data[0].costs) - setBiayaKirim(dataService.data[0].costs[0].cost[0].value) + if (dataService.data[0].costs[0]) { + setBiayaKirim(dataService.data[0].costs[0]?.cost[0].value) + setselectedExpedisiService( + dataService.data[0].costs[0]?.description + '-' + dataService.data[0].costs[0]?.service + ) + toast.success('Silahkan Pilih Service Tipe') + } else { + toast.error('Tidak Ada Service, Silahkan Pilih Expedisi lain !') + } } - if (selectedExpedisi != 0 && selectedExpedisi != 1 && totalWeight > 0) { + if (selectedCarrier != 0 && selectedCarrier != 1 && totalWeight > 0) { loadServiceRajaOngkir() } else { setListServiceExpedisi() setBiayaKirim(0) + setselectedExpedisiService() + } + }, [selectedCarrier, selectedAddress, totalWeight]) + + useEffect(() => { + if (selectedServiceType) { + let serviceType = selectedServiceType.split(',') + setBiayaKirim(serviceType[0]) + setselectedExpedisiService(serviceType[1]) + } + }, [selectedServiceType]) + + useEffect(() => { + if (selectedExpedisi) { + let serviceType = selectedExpedisi.split(',') + setselectedCarrier(serviceType[0]) + setselectedCarrierId(serviceType[1]) } - }, [selectedExpedisi, selectedAddress, totalWeight]) + }, [selectedExpedisi]) const poNumber = useRef(null) const poFile = useRef(null) @@ -172,7 +205,9 @@ const Checkout = () => { partner_shipping_id: auth.partnerId, partner_invoice_id: auth.partnerId, order_line: JSON.stringify(productOrder), - delivery_amount : biayaKirim, + delivery_amount: biayaKirim, + carrier_id: selectedCarrierId, + delivery_service_type: selectedExpedisiService, type: 'sale_order' } if (poNumber.current.value) data.po_number = poNumber.current.value @@ -188,7 +223,6 @@ const Checkout = () => { const payment = await axios.post( `${process.env.NEXT_PUBLIC_SELF_HOST}/api/shop/midtrans-payment?transactionId=${isCheckouted.id}` ) - console.log(payment) setIsLoading(false) window.location.href = payment.data.redirectUrl } @@ -211,50 +245,38 @@ const Checkout = () => { - {/* */} - - - - - - - - - {listserviceExpedisi && ( -
-
-
Service Type Expedisi :
-
- -
-
-
- )} - + {/* */} + + + + + + + + + + + +
{products && } @@ -294,7 +316,7 @@ const Checkout = () => {
Grand Total
- {currencyFormat(totalAmount - totalDiscountAmount + taxTotal + biayaKirim)} + {currencyFormat(totalAmount - totalDiscountAmount + taxTotal + parseInt(biayaKirim))}
{/*

*) Belum termasuk biaya pengiriman

*/} @@ -336,7 +358,9 @@ const Checkout = () => { @@ -381,23 +405,10 @@ const Checkout = () => { checkWeigth={checkWeigth} > - {listserviceExpedisi && ( -
-
-
Service Type Expedisi :
-
- -
-
-
- )} +
@@ -523,7 +534,9 @@ const Checkout = () => {
Grand Total
- {currencyFormat(totalAmount - totalDiscountAmount + taxTotal + parseInt(biayaKirim))} + {currencyFormat( + totalAmount - totalDiscountAmount + taxTotal + parseInt(biayaKirim) + )}

@@ -562,7 +575,14 @@ const Checkout = () => { @@ -608,7 +628,7 @@ const SectionAddress = ({ address, label, url }) => (

) -const SectionValidation = ({ address, checkWeigth }) => ( +const SectionValidation = ({ address, checkWeigth }) => address?.rajaongkirCityId == 0 && (
@@ -623,7 +643,6 @@ const SectionValidation = ({ address, checkWeigth }) => (
) -) const SectionExpedisi = ({ address, listExpedisi, setSelectedExpedisi, checkWeigth }) => address?.rajaongkirCityId > 0 && ( @@ -632,10 +651,14 @@ const SectionExpedisi = ({ address, listExpedisi, setSelectedExpedisi, checkWeig
Pilih Expedisi :
setSelectedServiceType(e.target.value)}> + {listserviceExpedisi.map((service) => ( + + ))} + +
+
+ + ) + const PickupAddress = ({ label }) => (
-- cgit v1.2.3