import Spinner from "@/core/components/elements/Spinner/Spinner" import useTransaction from "../hooks/useTransaction" import TransactionStatusBadge from "./TransactionStatusBadge" import Divider from "@/core/components/elements/Divider/Divider" import { useRef, useState } from "react" import { downloadPurchaseOrder } from "../utils/transactions" import BottomPopup from "@/core/components/elements/Popup/BottomPopup" import uploadPoApi from "../api/uploadPoApi" import { toast } from "react-hot-toast" import getFileBase64 from "@/core/utils/getFileBase64" import currencyFormat from "@/core/utils/currencyFormat" import VariantGroupCard from "@/lib/variant/components/VariantGroupCard" const Transaction = ({ id }) => { const { transaction } = useTransaction({ id }) const poNumber = useRef('') const poFile = useRef('') const [ uploadPo, setUploadPo ] = useState(false) const openUploadPo = () => setUploadPo(true) const closeUploadPo = () => setUploadPo(false) const submitUploadPo = async () => { const file = poFile.current.files[0] const name = poNumber.current.value if (typeof file === 'undefined' || !name) { toast.error('Nomor dan Dokumen PO harus diisi', { position: 'bottom-center' }) return } if (file.size > 5000000) { toast.error('Maksimal ukuran file adalah 5MB', { position: 'bottom-center' }) return } const data = { name, file: await getFileBase64(file) } const isUploaded = await uploadPoApi({ id, data }) if (isUploaded) { toast.success('Berhasil upload PO') transaction.refetch() closeUploadPo() return } toast.error('Terjadi kesalahan internal, coba lagi nanti atau hubungi kami') } return ( <> { transaction.isLoading && (
Dokumen PO
Total Belanja
{ currencyFormat(transaction.data?.amountTotal) }