From e6feac8e6ce2ea3c428d4307251634708b676c25 Mon Sep 17 00:00:00 2001 From: "HATEC\\SPVDEV001" Date: Wed, 23 Aug 2023 17:03:23 +0700 Subject: page daftar pengiriman --- .../elements/Navbar/NavbarUserDropdown.jsx | 1 + src/lib/auth/components/Menu.jsx | 3 + src/lib/shipment/api/listShipment.js | 9 + src/lib/shipment/components/Shipments.jsx | 219 +++++++++++++++++++++ src/lib/treckingAwb/api/getManifest.js | 0 src/lib/treckingAwb/component/Manifest.jsx | 72 +++++++ src/pages/my/menu.jsx | 1 + src/pages/my/shipments/index.jsx | 29 +++ 8 files changed, 334 insertions(+) create mode 100644 src/lib/shipment/api/listShipment.js create mode 100644 src/lib/shipment/components/Shipments.jsx create mode 100644 src/lib/treckingAwb/api/getManifest.js create mode 100644 src/lib/treckingAwb/component/Manifest.jsx create mode 100644 src/pages/my/shipments/index.jsx (limited to 'src') diff --git a/src/core/components/elements/Navbar/NavbarUserDropdown.jsx b/src/core/components/elements/Navbar/NavbarUserDropdown.jsx index 7848124c..075462e9 100644 --- a/src/core/components/elements/Navbar/NavbarUserDropdown.jsx +++ b/src/core/components/elements/Navbar/NavbarUserDropdown.jsx @@ -15,6 +15,7 @@ const NavbarUserDropdown = () => {
Daftar Quotation Daftar Transaksi + Daftar Pengiriman Invoice & Faktur Pajak Wishlist Daftar Alamat diff --git a/src/lib/auth/components/Menu.jsx b/src/lib/auth/components/Menu.jsx index 386b817c..e54992be 100644 --- a/src/lib/auth/components/Menu.jsx +++ b/src/lib/auth/components/Menu.jsx @@ -15,6 +15,9 @@ const Menu = () => { Daftar Transaksi + + Daftar Pengiriman + Invoice & Faktur Pajak diff --git a/src/lib/shipment/api/listShipment.js b/src/lib/shipment/api/listShipment.js new file mode 100644 index 00000000..a9237b76 --- /dev/null +++ b/src/lib/shipment/api/listShipment.js @@ -0,0 +1,9 @@ +import odooApi from "@/core/api/odooApi"; +import { getAuth } from "@/core/utils/auth" + +export const listShipments = async ({query}) => { + const auth = getAuth() + const list = await odooApi('GET', `/api/v1/partner/${auth.partnerId}/stock-picking?${query}`) + + return list; +} diff --git a/src/lib/shipment/components/Shipments.jsx b/src/lib/shipment/components/Shipments.jsx new file mode 100644 index 00000000..eb14c77f --- /dev/null +++ b/src/lib/shipment/components/Shipments.jsx @@ -0,0 +1,219 @@ +import DesktopView from '@/core/components/views/DesktopView' +import MobileView from '@/core/components/views/MobileView' +import Menu from '@/lib/auth/components/Menu' +import { MagnifyingGlassIcon } from '@heroicons/react/24/outline' +import ImageNext from 'next/image' +import { useRouter } from 'next/router' +import { useQuery } from 'react-query' +import _ from 'lodash-contrib' +import Spinner from '@/core/components/elements/Spinner/Spinner' +import Manifest from '@/lib/treckingAwb/component/Manifest' +import { useState } from 'react' + +const { listShipments } = require('../api/listShipment') + +const Shipments = () => { + const router = useRouter() + const { q = '', page = 1 } = router.query + + const limit = 15 + + const query = { + name: q, + offset: (page - 1) * limit, + limit + } + + const queryString = _.toQuery(query) + + const { data: shipments } = useQuery('shipments', () => listShipments({ query: queryString })) + const [ idAWB, setIdAWB ] = useState(null) + + const closePopup = () => { + setIdAWB(null) + } + + const handleSubmit = async () => {} + return ( + <> + +
+
+
+
+ +
+

Pending

+

99 {'>'}

+
+
+
+ +
+

Pengiriman

+

99 {'>'}

+
+
+
+ +
+

Selesai

+

99 {'>'}

+
+
+ +
+ setInputQuery(e.target.value)} + /> + +
+
+
+ +
+
+ +
+
+
+

Pengiriman

+ +
+
+

Pending

+
+
+ +
+
+

+ {shipments?.summary?.pendingCount} Pesanan +

+
+
+
Pengiriman
+
+
+ +
+
+

+ {shipments?.summary?.shipmentCount} Pesanan +

+
+
+
Pesanan Tiba
+
+
+ +
+
+

+ {shipments?.summary?.completedCount} Pesanan +

+
+
+
+
+
+

Detail Pengiriman

+
+ setInputQuery(e.target.value)} + /> + +
+
+ + + + + + + + + + + + + + {!shipments && ( + + + + )} + {shipments && shipments?.pickings?.length == 0 && ( + + + + )} + {shipments?.pickings.map((shipment) => ( + + + + + + + + + + ))} + +
TanggalNo. ResiNo. PengirimanSales OrderPurchase OrderExpedisiStatus
+
+ +
+
Tidak ada transaksi
{shipment.date || '-'}{shipment.trackingNumber || '-'}{shipment.name || '-'}{shipment.saleOrder.name || '-'}{shipment.saleOrder.clientOrderRef || '-'}{shipment.carrierName || '-'} + +
+
+
+
+ +
+ + ) +} + +export default Shipments diff --git a/src/lib/treckingAwb/api/getManifest.js b/src/lib/treckingAwb/api/getManifest.js new file mode 100644 index 00000000..e69de29b diff --git a/src/lib/treckingAwb/component/Manifest.jsx b/src/lib/treckingAwb/component/Manifest.jsx new file mode 100644 index 00000000..b8ad78c4 --- /dev/null +++ b/src/lib/treckingAwb/component/Manifest.jsx @@ -0,0 +1,72 @@ +import BottomPopup from '@/core/components/elements/Popup/BottomPopup' +import { useState } from 'react' + +const Manifest = ({ idAWB, closePopup }) => { + console.log('ini adalah', idAWB) + const airway = { + waybillNumber: '1234', + deliveryOrder: { + name: 'name', + carrier: 'carrier' + }, + manifests: [ + { + datetime: '12/12/2023', + description: 'ini descripsi' + } + ] + } + return ( + <> + +
+
+
No Pengiriman
+
{airway?.deliveryOrder?.name}
+
+
+
Kurir
+
{airway?.deliveryOrder?.carrier}
+
+
+
No Resi
+
{airway?.waybillNumber}
+
+
+ +
+
Status Pengiriman
+
    + {airway?.manifests?.map((manifest, index) => ( +
  1. +
    + +

    + {manifest.description} +

    +
  2. + ))} + {(!airway?.manifests || airway?.manifests?.length == 0) && ( +
    Belum ada pengiriman
    + )} +
+
+
+ + ) +} + +export default Manifest diff --git a/src/pages/my/menu.jsx b/src/pages/my/menu.jsx index c8e1e7e9..8d209fba 100644 --- a/src/pages/my/menu.jsx +++ b/src/pages/my/menu.jsx @@ -42,6 +42,7 @@ export default function Menu() {
Daftar Quotation Daftar Transaksi + Daftar Pengiriman Invoice & Faktur Pajak Wishlist
diff --git a/src/pages/my/shipments/index.jsx b/src/pages/my/shipments/index.jsx new file mode 100644 index 00000000..cb69c4e9 --- /dev/null +++ b/src/pages/my/shipments/index.jsx @@ -0,0 +1,29 @@ +import Seo from '@/core/components/Seo' +import AppLayout from '@/core/components/layouts/AppLayout' +import BasicLayout from '@/core/components/layouts/BasicLayout' +import DesktopView from '@/core/components/views/DesktopView' +import MobileView from '@/core/components/views/MobileView' +import IsAuth from '@/lib/auth/components/IsAuth' +import dynamic from 'next/dynamic' + +const ShipmentsComponent = dynamic(() => import('@/lib/shipment/components/Shipments')) + +export default function MyShipments() { + return ( + + + + + + + + + + + + + + + + ) +} -- cgit v1.2.3