import WithAuth from "@/components/auth/WithAuth" import Alert from "@/components/elements/Alert" import Link from "@/components/elements/Link" import Pagination from "@/components/elements/Pagination" import AppBar from "@/components/layouts/AppBar" import Layout from "@/components/layouts/Layout" import apiOdoo from "@/core/utils/apiOdoo" import { useAuth } from "@/core/utils/auth" import currencyFormat from "@/core/utils/currencyFormat" import useBottomPopup from "@/lib/elements/hooks/useBottomPopup" import { CheckIcon, ClockIcon, EllipsisVerticalIcon, MagnifyingGlassIcon } from "@heroicons/react/24/outline" import { useRouter } from "next/router" import { useEffect, useRef, useState } from "react" export default function Invoices() { const [ auth ] = useAuth() const router = useRouter() const { q, page = 1 } = router.query const [ invoices, setInvoices ] = useState([]) const [ pageCount, setPageCount ] = useState(0) const [ isLoading, setIsLoading ] = useState(true) const searchQueryRef = useRef() useEffect(() => { const loadInvoices = async () => { if (auth) { const limit = 10 let offset = (page - 1) * 10 let queryParams = [`limit=${limit}`, `offset=${offset}`] if (q) queryParams.push(`name=${q}`) queryParams = queryParams.join('&') queryParams = queryParams ? '?' + queryParams : '' const dataInvoices = await apiOdoo('GET', `/api/v1/partner/${auth.partner_id}/invoice${queryParams}`) setInvoices(dataInvoices) setPageCount(Math.ceil(dataInvoices.sale_order_total / limit)) setIsLoading(false) } } loadInvoices() }, [ auth, q, page ]) const actionSearch = (e) => { e.preventDefault() let queryParams = [] if (searchQueryRef.current.value) queryParams.push(`q=${searchQueryRef.current.value}`) queryParams = queryParams.join('&') queryParams = queryParams ? `?${queryParams}` : '' router.push(`/my/invoices${queryParams}`) } const downloadInvoice = (data) => { const url = `${process.env.ODOO_HOST}/api/v1/download/invoice/${data.id}/${data.token}` window.open(url, 'download') closePopup() } const downloadTaxInvoice = (data) => { const url = `${process.env.ODOO_HOST}/api/v1/download/tax-invoice/${data.id}/${data.token}` window.open(url, 'download') closePopup() } const childrenPopup = (data) => (
{ invoice.invoice_date }
{ invoice.payment_term }
{ invoice.purchase_order_name || '-' }
{ currencyFormat(invoice.amount_total) }