diff options
| -rw-r--r-- | public/images/BOX(1).svg | 47 | ||||
| -rw-r--r-- | public/images/BOX_DELIVER_(1).svg | 72 | ||||
| -rw-r--r-- | public/images/open-box(1).svg | 43 | ||||
| -rw-r--r-- | src/core/components/elements/Navbar/NavbarUserDropdown.jsx | 1 | ||||
| -rw-r--r-- | src/lib/auth/components/Menu.jsx | 3 | ||||
| -rw-r--r-- | src/lib/shipment/api/listShipment.js | 9 | ||||
| -rw-r--r-- | src/lib/shipment/components/Shipments.jsx | 219 | ||||
| -rw-r--r-- | src/lib/treckingAwb/api/getManifest.js | 0 | ||||
| -rw-r--r-- | src/lib/treckingAwb/component/Manifest.jsx | 72 | ||||
| -rw-r--r-- | src/pages/my/menu.jsx | 1 | ||||
| -rw-r--r-- | src/pages/my/shipments/index.jsx | 29 |
11 files changed, 496 insertions, 0 deletions
diff --git a/public/images/BOX(1).svg b/public/images/BOX(1).svg new file mode 100644 index 00000000..61e41e62 --- /dev/null +++ b/public/images/BOX(1).svg @@ -0,0 +1,47 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#E20613;} +</style> +<g> + <path class="st0" d="M170.1,354.3c-16.9-7.3-33.9-14.4-50.8-21.6c-1.6-0.7-3.3-0.9-5-1c-6.1-0.1-11.3,4.1-12.6,10.2 + c-1.3,5.7,1.7,11.6,7.6,14.2c16.9,7.3,33.9,14.5,50.8,21.6c2,0.8,4,1.3,6.2,1c6.2-0.9,10.7-5.1,11.6-10.9 + C178.7,362.2,175.8,356.7,170.1,354.3z M170.1,354.3c-16.9-7.3-33.9-14.4-50.8-21.6c-1.6-0.7-3.3-0.9-5-1 + c-6.1-0.1-11.3,4.1-12.6,10.2c-1.3,5.7,1.7,11.6,7.6,14.2c16.9,7.3,33.9,14.5,50.8,21.6c2,0.8,4,1.3,6.2,1 + c6.2-0.9,10.7-5.1,11.6-10.9C178.7,362.2,175.8,356.7,170.1,354.3z M170.1,354.3c-16.9-7.3-33.9-14.4-50.8-21.6 + c-1.6-0.7-3.3-0.9-5-1c-6.1-0.1-11.3,4.1-12.6,10.2c-1.3,5.7,1.7,11.6,7.6,14.2c16.9,7.3,33.9,14.5,50.8,21.6c2,0.8,4,1.3,6.2,1 + c6.2-0.9,10.7-5.1,11.6-10.9C178.7,362.2,175.8,356.7,170.1,354.3z M170.1,354.3c-16.9-7.3-33.9-14.4-50.8-21.6 + c-1.6-0.7-3.3-0.9-5-1c-6.1-0.1-11.3,4.1-12.6,10.2c-1.3,5.7,1.7,11.6,7.6,14.2c16.9,7.3,33.9,14.5,50.8,21.6c2,0.8,4,1.3,6.2,1 + c6.2-0.9,10.7-5.1,11.6-10.9C178.7,362.2,175.8,356.7,170.1,354.3z M447.6,130.4c-66.3-24.8-132.5-49.6-198.7-74.6 + c-5-1.9-9.6-1.8-14.6,0.4c-57.6,24.8-115.2,49.4-172.8,74c-7.7,3.3-11.3,8.3-11.3,17.1c0.2,74.2,0.2,148.4,0,222.6 + c0,8.5,3.4,13.5,11.1,16.8c57.8,24.6,115.5,49.4,173.2,74.2c1.4,0.6,3,0.8,4.1,2h6.4c12.4-5.4,25.1-9.7,37.7-14.4 + c54.8-20.6,109.7-41.2,164.5-61.7c5.5-2.1,9.8-5,11.6-10.9V141.2C457,135.7,453,132.5,447.6,130.4z M229.1,428.1 + c0,0.6-0.1,1.3-0.1,2.5c-3.5-1.5-6.7-2.8-10-4.2c-46.7-20-93.3-40-140-59.9c-2.3-1-3.2-1.9-3.2-4.5c0.1-65.5,0.1-130.9,0.1-196.3 + v-2.6c16.9,7.3,33.2,14.3,49.5,21.3c33.5,14.4,67,28.7,100.5,43c2.2,1,3.2,1.9,3.2,4.5C229.1,297.2,229.1,362.6,229.1,428.1z + M243.3,206c-1.2,0.5-2.1,0.1-3-0.3c-47.8-20.5-95.7-41.1-143.5-61.6c-0.1,0-0.2-0.2-0.3-0.3c0.3-1.3,1.6-1.3,2.4-1.6 + C145.7,122,192.5,102,239.2,82c1.8-0.8,3.3-1.2,5.3-0.5c54.2,20.4,108.4,40.7,162.6,61.1c0.6,0.2,1.4,0.1,1.6,1.4 + c-9.4,3.6-19.1,6.7-28.3,10.8c-7.3,3.3-13.5,2.9-20.8-0.6c-19.6-9.4-39.6-17.9-59.4-26.9c-4.8-2.2-9.2-2.3-14.1-0.1 + c-15.8,6.9-31.7,13.5-47.5,20.3c-7.7,3.3-11,9.6-8.7,16.4c1.5,4.4,4.7,6.9,8.8,8.5c13.9,5.7,27.7,11.5,41.5,17.2 + c0.8,0.4,1.8,0.4,2.5,1.6C269.5,196.2,256.4,201,243.3,206z M332.7,199.7c7.9-2.9,15.8-5.9,24.1-8.9c0,20.3,0,40.2,0,60.2 + c0,1.6-0.6,2.3-2.1,2.8c-7.7,2.8-15.4,5.7-23.5,8.8c0-20.4,0-40.2,0-60C331.2,201.3,331.2,200.2,332.7,199.7z M319.5,177.4 + c-1,0.4-1.8,0-2.6-0.3c-13.8-5.7-27.6-11.4-42-17.3c6-2.6,11.4-4.9,16.9-7.3c1.3-0.6,2.3,0.1,3.4,0.6c13.3,5.9,26.6,11.9,40.7,18.2 + C329.9,173.5,324.7,175.4,319.5,177.4z M430,365.9c-57.2,21.4-114.4,42.8-171.7,64.3c-1.1,0.4-2.2,0.8-3.7,1.3v-4.2 + c0-64.8,0-129.6-0.1-194.3c0-3,0.8-4.3,3.7-5.4c14.7-5.3,29.3-10.9,44-16.3c1.1-0.4,2.2-0.8,3.5-1.2c0,23.3,0,46.3,0,69.3 + c0,6,2.1,10.6,7.7,13.2c2.8,1.3,5.7,1.6,8.5,0.6c17.4-6.4,34.8-12.9,52.1-19.5c6.1-2.3,8.3-7.4,8.3-13.7c-0.1-24.9,0-49.8-0.1-74.6 + c0-3.1,0.7-4.6,3.8-5.7c15.7-5.6,31.3-11.6,47.4-17.6v3.7c0,65,0,130.1,0.1,195.1C433.5,363.7,432.6,364.9,430,365.9z M170.1,354.3 + c-16.9-7.3-33.9-14.4-50.8-21.6c-1.6-0.7-3.3-0.9-5-1c-6.1-0.1-11.3,4.1-12.6,10.2c-1.3,5.7,1.7,11.6,7.6,14.2 + c16.9,7.3,33.9,14.5,50.8,21.6c2,0.8,4,1.3,6.2,1c6.2-0.9,10.7-5.1,11.6-10.9C178.7,362.2,175.8,356.7,170.1,354.3z M170.1,354.3 + c-16.9-7.3-33.9-14.4-50.8-21.6c-1.6-0.7-3.3-0.9-5-1c-6.1-0.1-11.3,4.1-12.6,10.2c-1.3,5.7,1.7,11.6,7.6,14.2 + c16.9,7.3,33.9,14.5,50.8,21.6c2,0.8,4,1.3,6.2,1c6.2-0.9,10.7-5.1,11.6-10.9C178.7,362.2,175.8,356.7,170.1,354.3z M170.1,354.3 + c-16.9-7.3-33.9-14.4-50.8-21.6c-1.6-0.7-3.3-0.9-5-1c-6.1-0.1-11.3,4.1-12.6,10.2c-1.3,5.7,1.7,11.6,7.6,14.2 + c16.9,7.3,33.9,14.5,50.8,21.6c2,0.8,4,1.3,6.2,1c6.2-0.9,10.7-5.1,11.6-10.9C178.7,362.2,175.8,356.7,170.1,354.3z"/> + <path class="st0" d="M177.9,367.8c-0.9,5.8-5.4,10-11.6,10.9c-2.2,0.3-4.2-0.2-6.2-1c-17-7.2-33.9-14.3-50.8-21.6 + c-6-2.6-8.9-8.5-7.6-14.2c1.4-6,6.6-10.2,12.6-10.2c1.7,0.1,3.4,0.3,5,1c16.9,7.2,33.9,14.3,50.8,21.6 + C175.8,356.7,178.7,362.2,177.9,367.8z"/> + <path class="st0" d="M177.9,367.8c-0.9,5.8-5.4,10-11.6,10.9c-2.2,0.3-4.2-0.2-6.2-1c-17-7.2-33.9-14.3-50.8-21.6 + c-6-2.6-8.9-8.5-7.6-14.2c1.4-6,6.6-10.2,12.6-10.2c1.7,0.1,3.4,0.3,5,1c16.9,7.2,33.9,14.3,50.8,21.6 + C175.8,356.7,178.7,362.2,177.9,367.8z"/> +</g> +</svg> diff --git a/public/images/BOX_DELIVER_(1).svg b/public/images/BOX_DELIVER_(1).svg new file mode 100644 index 00000000..c4a9d809 --- /dev/null +++ b/public/images/BOX_DELIVER_(1).svg @@ -0,0 +1,72 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#FAD147;} + .st1{fill:#F8C20A;} +</style> +<g> + <path class="st0" d="M60.6,304.1c0.2,4.8-2.9,8.6-7.8,8.9c-4.5,0.3-9.1,0.2-13.6,0c-3.8-0.2-5.8-3-7.8-5.8c0.4-0.1,0.9-0.2,1.2,0.2 + c5.5,6.9,13.2,4.7,20.2,4.3c4.4-0.2,6.6-3.5,6.4-7.6c-0.2-4-2.9-6.5-7.3-6.8c-3.5-0.2-7.1-0.1-10.7,0c-3,0-5.6,1-7.5,3.4 + c-0.6,0.7-1.1,1.7-2.4,1.4c2.3-4.5,5.9-6.5,11.1-6.1c3.2,0.3,6.5,0,9.8,0.1C57.1,296.3,60.4,299.6,60.6,304.1z"/> + <path class="st0" d="M74.9,251.7c-4.7,0.1-8.6-3.7-8.6-8.5c0-4.7,3.6-8.4,8.2-8.5c4.7-0.1,8.8,3.8,8.8,8.5 + C83.2,247.6,79.4,251.5,74.9,251.7z"/> + <path class="st0" d="M468.4,258.1c0.1,4.7-3.9,8.7-8.6,8.6c-4.8,0-8.6-4-8.4-8.8c0.1-4.6,3.9-8.2,8.6-8.1 + C464.6,249.8,468.3,253.5,468.4,258.1z"/> + <path class="st0" d="M468.5,327.6c-0.3-11.4-0.1-22.8-0.1-34.1c0-5.9-3.4-9.6-8.5-9.5c-5.2,0-8.5,3.6-8.5,9.6 + c-0.1,9.3-0.2,18.5,0.1,27.7c0.1,3.4-1.1,5-3.9,6.5c-28.8,15.7-57.5,31.5-86.2,47.2c-13,7.2-26.1,14.3-39.6,21.7 + c-0.1-1.1-0.2-1.5-0.2-2c0-45.5,0-91-0.1-136.5c0-2.6,0.9-3.7,3.1-4.8c5.3-2.7,10.5-5.7,15.7-8.6c7.3-4,14.6-8,21.9-12 + c1,1.7,0.6,3.1,0.6,4.5c0,9.8,0,19.6,0,29.4c0.1,8.8,6.4,12.5,14.1,8.3c9.5-5.2,18.9-10.5,28.4-15.5c4.2-2.3,6.2-5.3,6.1-10.2 + c-0.2-12.8,0.1-25.6-0.2-38.4c-0.1-3.7,0.8-5.8,4.3-7.6c10.9-5.6,21.4-11.6,32.2-17.4c1.1-0.6,2-1.7,3.6-1.3v33.6 + c0,1.6,0,3.1,0,4.7c0.1,5.9,3.4,9.7,8.5,9.7s8.6-3.8,8.6-9.6c0-17.1-0.1-34.1,0.1-51.2c0.1-5.4-2.1-8.7-6.7-11.2 + c-47.5-26-95-52.1-142.5-78.2c-4.5-2.5-8.3-2.3-12.7,0.2c-20.3,11.3-40.8,22.4-61.1,33.6c-27.3,15-54.7,30.1-82,45 + c-3.9,2.1-5.9,5.1-5.7,9.6c0.1,4-0.2,8,0.1,11.9c0.2,3.2-0.6,4.3-4.1,4.2c-30.2-0.1-60.3-0.1-90.5-0.1c-1.6,0-3.1-0.1-4.7,0.1 + c-4.8,0.4-8,4.2-7.7,9c0.3,5,4,8,10.1,8c30.7,0,61.4,0.1,92.2-0.1c4.1,0,4.8,1.2,4.7,4.9c-0.3,7.1-0.3,14.2,0,21.3 + c0.1,3.6-0.6,4.8-4.5,4.7c-14.5-0.3-29-0.2-43.5-0.1c-6.4,0-10.1,4.2-9.3,9.9c0.7,4.4,4.2,7.1,9.6,7.1c14.6,0,29.3,0.1,43.9-0.1 + c2.9,0,3.8,0.6,3.8,3.7c-0.2,12.4-0.2,24.7,0,37.1c0,3-0.7,3.8-3.7,3.8C133.1,296,112.1,296,91,296c-2,0-4-0.1-6,0.1 + c-3.8,0.4-6.9,3.4-7.4,7.2c-0.5,4,1.2,6.9,4.7,8.8c1.8,1,3.8,1,5.8,1c22.1,0,44.1,0,66.1-0.1c2.6,0,3.8,0.5,3.6,3.4 + c-0.3,3.8,0.1,7.7-0.1,11.5c-0.3,5.3,1.8,8.7,6.6,11.2c47.7,26,95.3,52.2,142.8,78.4c4.2,2.3,7.8,2.4,12,0c9-5.1,18.1-10,27.2-15 + c38.4-21.1,76.8-42.2,115.3-63.2C466.5,336.8,468.7,333.3,468.5,327.6z M392.5,247c-4,2.1-7.9,4.3-12.6,6.8c0-10.3,0-20,0-29.7 + c0-1.1,0.7-1.5,1.4-1.9c4.1-2.3,8.2-4.5,13-7.1c0,10.1,0,19.5,0,28.9C394.3,245.5,393.8,246.4,392.5,247z M311.2,99.5 + c1.4-0.8,2.5-0.8,3.9,0c42,23.1,84,46.2,125.9,69.3c0.2,0.1,0.4,0.4,0.8,0.7c-12.4,6.8-24.7,13.5-36.9,20.3c-2.2,1.2-3.5,0-5-0.8 + c-28.5-15.6-56.9-31.3-85.4-46.9c-13.3-7.3-26.6-14.6-40.4-22.2C286.9,112.9,299,106.3,311.2,99.5z M254.8,130.5 + c2-1.2,3.2,0.1,4.6,0.9c30.1,16.5,60.1,33,90.2,49.5c10.9,6,21.9,12,32.8,18c0.8,0.5,1.6,1,3,1.7c-4.6,2.5-8.7,4.7-12.7,7 + c-2.1,1.2-3.2-0.5-4.6-1.3c-30.3-16.6-60.6-33.3-90.9-49.9c-10.2-5.6-20.4-11.2-30.6-16.8c-1.2-0.7-2.3-1.4-3.9-2.4 + C247,134.8,251,132.8,254.8,130.5z M304.6,394.5c0,0.5-0.1,1.1-0.2,2.1c-5-2.7-9.7-5.2-14.4-7.8c-37.3-20.5-74.6-41-111.9-61.4 + c-2.1-1.2-3.4-2.2-3.4-5c0.1-45.4,0.1-90.7,0.1-136.1c0-0.6,0.1-1.1,0.1-1.7c1.2-0.7,1.9,0.3,2.7,0.7c41.3,22.6,82.5,45.3,123.8,68 + c2,1.1,3.3,2,3.2,4.7C304.5,303.5,304.6,349,304.6,394.5z M314.6,239.4c-1.4,0.7-2.4,0.3-3.6-0.4c-42-23.1-84-46.2-126-69.3 + c-0.2-0.1-0.3-0.3-0.6-0.7c12.9-7.1,25.7-14,38.4-21.2c2.1-1.2,3.5,0,5,0.9c29.6,16.2,59.2,32.5,88.7,48.8 + c12.2,6.7,24.3,13.4,37,20.3C340.3,225.3,327.5,232.3,314.6,239.4z"/> + <path class="st0" d="M52.9,313c-4.5,0.3-9.1,0.2-13.6,0c-3.8-0.2-5.8-3-7.8-5.8v-5.1c2.3-4.5,5.9-6.5,11.1-6.1 + c3.2,0.3,6.5,0,9.8,0.1c4.8,0.2,8.1,3.5,8.3,8C60.8,308.9,57.7,312.7,52.9,313z"/> + <path class="st1" d="M468.5,327.6c-0.3-11.4-0.1-22.8-0.1-34.1c0-5.9-3.4-9.6-8.5-9.5c-5.2,0-8.5,3.6-8.5,9.6 + c-0.1,9.3-0.2,18.5,0.1,27.7c0.1,3.4-1.1,5-3.9,6.5c-28.8,15.7-57.5,31.5-86.2,47.2c-13,7.2-26.1,14.3-39.6,21.7 + c-0.1-1.1-0.2-1.5-0.2-2c0-45.5,0-91-0.1-136.5c0-2.6,0.9-3.7,3.1-4.8c5.3-2.7,10.5-5.7,15.7-8.6c7.3-4,14.6-8,21.9-12 + c1,1.7,0.6,3.1,0.6,4.5c0,9.8,0,19.6,0,29.4c0.1,8.8,6.4,12.5,14.1,8.3c9.5-5.2,18.9-10.5,28.4-15.5c4.2-2.3,6.2-5.3,6.1-10.2 + c-0.2-12.8,0.1-25.6-0.2-38.4c-0.1-3.7,0.8-5.8,4.3-7.6c10.9-5.6,21.4-11.6,32.2-17.4c1.1-0.6,2-1.7,3.6-1.3v33.6 + c0,1.6,0,3.1,0,4.7c0.1,5.9,3.4,9.7,8.5,9.7s8.6-3.8,8.6-9.6c0-17.1-0.1-34.1,0.1-51.2c0.1-5.4-2.1-8.7-6.7-11.2 + c-47.5-26-95-52.1-142.5-78.2c-4.5-2.5-8.3-2.3-12.7,0.2c-20.3,11.3-40.8,22.4-61.1,33.6c-27.3,15-54.7,30.1-82,45 + c-3.9,2.1-5.9,5.1-5.7,9.6c0.1,4-0.2,8,0.1,11.9c0.2,3.2-0.6,4.3-4.1,4.2c-30.2-0.1-60.3-0.1-90.5-0.1c-1.6,0-3.1-0.1-4.7,0.1 + c-4.8,0.4-8,4.2-7.7,9c0.3,5,4,8,10.1,8c30.7,0,61.4,0.1,92.2-0.1c4.1,0,4.8,1.2,4.7,4.9c-0.3,7.1-0.3,14.2,0,21.3 + c0.1,3.6-0.6,4.8-4.5,4.7c-14.5-0.3-29-0.2-43.5-0.1c-6.4,0-10.1,4.2-9.3,9.9c0.7,4.4,4.2,7.1,9.6,7.1c14.6,0,29.3,0.1,43.9-0.1 + c2.9,0,3.8,0.6,3.8,3.7c-0.2,12.4-0.2,24.7,0,37.1c0,3-0.7,3.8-3.7,3.8C133.1,296,112.1,296,91,296c-2,0-4-0.1-6,0.1 + c-3.8,0.4-6.9,3.4-7.4,7.2c-0.5,4,1.2,6.9,4.7,8.8c1.8,1,3.8,1,5.8,1c22.1,0,44.1,0,66.1-0.1c2.6,0,3.8,0.5,3.6,3.4 + c-0.3,3.8,0.1,7.7-0.1,11.5c-0.3,5.3,1.8,8.7,6.6,11.2c47.7,26,95.3,52.2,142.8,78.4c4.2,2.3,7.8,2.4,12,0c9-5.1,18.1-10,27.2-15 + c38.4-21.1,76.8-42.2,115.3-63.2C466.5,336.8,468.7,333.3,468.5,327.6z M392.5,247c-4,2.1-7.9,4.3-12.6,6.8c0-10.3,0-20,0-29.7 + c0-1.1,0.7-1.5,1.4-1.9c4.1-2.3,8.2-4.5,13-7.1c0,10.1,0,19.5,0,28.9C394.3,245.5,393.8,246.4,392.5,247z M311.2,99.5 + c1.4-0.8,2.5-0.8,3.9,0c42,23.1,84,46.2,125.9,69.3c0.2,0.1,0.4,0.4,0.8,0.7c-12.4,6.8-24.7,13.5-36.9,20.3c-2.2,1.2-3.5,0-5-0.8 + c-28.5-15.6-56.9-31.3-85.4-46.9c-13.3-7.3-26.6-14.6-40.4-22.2C286.9,112.9,299,106.3,311.2,99.5z M254.8,130.5 + c2-1.2,3.2,0.1,4.6,0.9c30.1,16.5,60.1,33,90.2,49.5c10.9,6,21.9,12,32.8,18c0.8,0.5,1.6,1,3,1.7c-4.6,2.5-8.7,4.7-12.7,7 + c-2.1,1.2-3.2-0.5-4.6-1.3c-30.3-16.6-60.6-33.3-90.9-49.9c-10.2-5.6-20.4-11.2-30.6-16.8c-1.2-0.7-2.3-1.4-3.9-2.4 + C247,134.8,251,132.8,254.8,130.5z M304.6,394.5c0,0.5-0.1,1.1-0.2,2.1c-5-2.7-9.7-5.2-14.4-7.8c-37.3-20.5-74.6-41-111.9-61.4 + c-2.1-1.2-3.4-2.2-3.4-5c0.1-45.4,0.1-90.7,0.1-136.1c0-0.6,0.1-1.1,0.1-1.7c1.2-0.7,1.9,0.3,2.7,0.7c41.3,22.6,82.5,45.3,123.8,68 + c2,1.1,3.3,2,3.2,4.7C304.5,303.5,304.6,349,304.6,394.5z M314.6,239.4c-1.4,0.7-2.4,0.3-3.6-0.4c-42-23.1-84-46.2-126-69.3 + c-0.2-0.1-0.3-0.3-0.6-0.7c12.9-7.1,25.7-14,38.4-21.2c2.1-1.2,3.5,0,5,0.9c29.6,16.2,59.2,32.5,88.7,48.8 + c12.2,6.7,24.3,13.4,37,20.3C340.3,225.3,327.5,232.3,314.6,239.4z"/> + <path class="st0" d="M83.3,243.1c0,4.5-3.8,8.4-8.3,8.5c-4.7,0.1-8.6-3.7-8.6-8.5c0-4.7,3.6-8.4,8.2-8.5 + C79.2,234.6,83.3,238.5,83.3,243.1z"/> + <path class="st0" d="M468.4,258.1c0.1,4.7-3.9,8.7-8.6,8.6c-4.8,0-8.6-4-8.4-8.8c0.1-4.6,3.9-8.2,8.6-8.1 + C464.6,249.8,468.3,253.5,468.4,258.1z"/> +</g> +</svg> diff --git a/public/images/open-box(1).svg b/public/images/open-box(1).svg new file mode 100644 index 00000000..f9dccef1 --- /dev/null +++ b/public/images/open-box(1).svg @@ -0,0 +1,43 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Generator: Adobe Illustrator 24.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> +<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" + viewBox="0 0 500 500" style="enable-background:new 0 0 500 500;" xml:space="preserve"> +<style type="text/css"> + .st0{fill:#15803D;} +</style> +<g> + <path class="st0" d="M447,278.9c-14.2-23.5-28.5-46.9-42.7-70.3c-1.5-2.5-3.5-4.1-6.4-4.7c-40-9-79.9-18-119.9-27 + c-5.6-1.2-9.5,1.1-10.5,5.7c-1,4.7,1.7,8.2,7.3,9.5c7.4,1.7,14.8,3.3,22.2,5c21.9,4.9,43.7,9.8,66.2,14.9c-1.5,0.6-2.4,1-3.3,1.3 + c-39.5,10.1-79,20.2-118.5,30.4c-1.9,0.5-3.8,0.5-5.7,0c-38.4-10.5-76.8-21-115.4-31.5c0.7-1.4,1.6-1.3,2.3-1.4 + c22.8-5.1,45.6-10.2,68.5-15.4c5.6-1.3,8.5-5,7.5-9.4c-1.1-4.8-5.2-7-11-5.7c-33.8,7.6-67.7,15.2-101.5,22.7 + c-3.4,0.8-5.8,2.5-7.6,5.4c-14.8,23.5-29.5,47-44.2,70.6c-3.9,6.3-2,11.3,5.1,13.3c12.2,3.5,24.4,7.2,36.8,10.4 + c3.9,1,4.9,2.6,4.9,6.5c-0.2,36.7-0.1,73.4-0.1,110.1c0,7,1.6,9,8.1,10.6c48,12,96.1,24,144.1,36c3,0.8,5.9,1,9,0.2 + c21.3-5,42.8-9.9,64.1-14.8c6.2-1.4,9.1-5.2,7.9-10c-1.1-4.6-5.4-6.5-11.4-5.2c-8.7,2-17.3,4.1-25.9,6.1 + c-10.1,2.3-20.2,4.6-30.4,6.9V284.9c1.3,2.3,2,3.6,2.8,5c7.4,14.1,14.8,28.3,22.3,42.4c2.6,5,5.3,6.1,10.7,4.7 + c10-2.7,19.9-5.5,29.8-8.4c25.6-7.2,51.2-14.5,76.9-21.8c0.1,1.1,0.3,1.8,0.3,2.6c0,34.4-0.1,68.9,0.1,103.3c0,3.5-1.8,3.9-4.2,4.5 + c-15.7,3.6-31.4,7.2-47.2,10.8c-6,1.4-8.8,5-7.7,9.7c1.2,4.8,5.3,6.9,11.1,5.5c18.1-4.2,36.1-8.3,54.2-12.5c8-1.9,9.1-3.4,9.2-11.7 + c0-37.2,0.1-74.4-0.1-111.6c0-4.3,1.4-5.7,5.3-6.7c10.6-2.7,21.1-5.8,31.7-8.9C448.5,289.9,450.6,284.9,447,278.9z M230.5,449.2 + c-18.1-4.5-35.9-8.9-53.7-13.4c-25.5-6.4-51-12.8-76.5-19.1c-3-0.7-3.9-1.7-3.9-4.8c0.1-33.2,0.1-66.3,0-99.5c0-3.7,1-3.8,4.1-2.9 + c7.2,2.2,14.6,4.2,21.9,6.2c5.6,1.5,9.5-0.3,10.9-4.9c1.4-4.5-1.1-8.4-6.7-10c-23.5-6.8-47.1-13.6-70.7-20.1 + c-3.8-1-3.3-2.1-1.7-4.6c11.1-17.6,22.2-35.3,33.1-53c1.6-2.7,3.1-3.3,6.2-2.4c43.2,11.9,86.5,23.6,129.8,35.2c3.6,1,3.7,1.9,2.1,5 + c-9.4,18.5-18.7,37.1-27.9,55.8c-1.3,2.7-2.4,3.7-5.8,2.7c-9.7-3.1-19.5-5.6-29.3-8.4c-1.1-0.3-2.2-0.6-3.3-0.9 + c-4.5-0.9-8.3,1.3-9.5,5.3c-1.2,3.9,1,8.2,5.4,9.5c14.1,4.1,28.2,8.1,42.3,12.1c5,1.4,7.9-1.3,10-5.4c6.8-13.5,13.5-27.1,20.3-40.6 + c0.7-1.4,1-3,2.8-4.3L230.5,449.2L230.5,449.2z M399.3,287.7c-37.5,10.6-75.1,21.2-112.6,31.8c-2,0.6-3.7,1.6-5.2-1.2 + c-10.4-20.2-21-40.3-31.8-60.8c14.3-3.7,28.3-7.3,42.3-10.9c32.5-8.3,65-16.7,97.4-25c1.9-0.5,3.7-1.5,5.3,1.2 + c11.2,18.7,22.6,37.3,34.2,56.4C418.9,282.1,409.1,285,399.3,287.7z"/> + <path class="st0" d="M236.3,209.6c2.3-44.9,19.1-82.5,56.4-109.7c5.7-4.2,11.8-7.9,18.3-10.7c5.2-2.2,9.5-0.8,11.4,3.6 + c1.8,4.2-0.1,8.1-5.1,10.5c-36.2,17.6-56,47.3-63.3,86.1c-1.8,9.4-2.2,18.9-2.3,28.4c-0.1,3.7-1.6,6.5-5.3,7.9 + c-2.9,1.1-5.4,0.4-7.6-1.5c-1.9-1.6-2.5-3.7-2.5-6C236.3,215.4,236.3,212.6,236.3,209.6z"/> + <path class="st0" d="M230.2,189.4c0,2.6,0.1,5.2,0,7.8c-0.2,4.8-3,7.8-7.4,8s-7.6-2.6-8-7.3c-0.6-7.2-0.4-14.5-1.3-21.7 + c-5.8-42.3-25.5-74.9-64.9-93.9c-4.7-2.3-6.4-6.5-4.3-10.7c2.1-4.2,6.2-5.6,11.1-3.2c25.6,12.3,44.9,31.2,58.2,56.2 + C224.4,144.7,229.3,166.5,230.2,189.4z"/> + <path class="st0" d="M253.5,59c-10.3,4.3-16.7,11.5-20.1,21.9c-4.2-10.3-11.3-16.9-21.9-20.3c10-4.3,16.9-11,20.1-21.7 + C236.1,49.1,243.1,55.6,253.5,59z"/> + <path class="st0" d="M333.7,118.9c7.2-3.3,12.1-8.3,14.6-17.2c3.3,8.4,8.2,13.2,17,15.6c-8.1,3.6-13.3,8.3-15.4,17.2 + C346.2,126.5,341.7,121,333.7,118.9z"/> + <path class="st0" d="M142.3,117.6c-8.2,3.2-12.7,8-15.1,16.3c-3.5-7.8-7.8-12.9-16.7-14.7c7.9-3.6,13-8,15.1-16.8 + C129,110.3,133.9,115,142.3,117.6z"/> + <path class="st0" d="M292.1,153.3c5.1-2.4,8.3-6,10-11.8c2.7,5.1,5.5,9.1,12.1,10.5c-5.5,2.9-9.4,6-10.9,12.2 + C300.6,158.8,297.8,154.7,292.1,153.3z"/> +</g> +</svg> 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 = () => { <div className='navbar-user-dropdown'> <Link href='/my/quotations'>Daftar Quotation</Link> <Link href='/my/transactions'>Daftar Transaksi</Link> + <Link href='/my/shipments'>Daftar Pengiriman</Link> <Link href='/my/invoices'>Invoice & Faktur Pajak</Link> <Link href='/my/wishlist'>Wishlist</Link> <Link href='/my/address'>Daftar Alamat</Link> 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 = () => { <LinkItem href='/my/transactions' active={routeStartWith('/my/transactions')}> Daftar Transaksi </LinkItem> + <LinkItem href='/my/shipments' active={routeStartWith('/my/shipments')}> + Daftar Pengiriman + </LinkItem> <LinkItem href='/my/invoices' active={routeStartWith('/my/invoices')}> Invoice & Faktur Pajak </LinkItem> 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 ( + <> + <MobileView> + <div className='p-4 flex flex-col gap-y-4'> + <div className='flex justify-between gap-x-1'> + <div className='flex justify-between items-center gap-x-2 p-2 bg-white border border-gray-200 rounded-lg shadow'> + <div> + <ImageNext src='/images/BOX(1).svg' width={15} height={20} /> + </div> + <h1 className='text-xs'>Pending</h1> + <h1 className='text-xs'>99 {'>'}</h1> + </div> + <div className='flex justify-between items-center gap-x-2 p-2 bg-white border border-gray-200 rounded-lg shadow'> + <div> + <ImageNext src='/images/BOX_DELIVER_(1).svg' width={15} height={20} /> + </div> + <h1 className='text-xs'>Pengiriman</h1> + <h1 className='text-xs'>99 {'>'}</h1> + </div> + <div className='flex justify-between items-center gap-x-2 p-2 bg-white border border-gray-200 rounded-lg shadow'> + <div> + <ImageNext src='/images/open-box(1).svg' width={16} height={20} /> + </div> + <h1 className='text-xs'>Selesai</h1> + <h1 className='text-xs'>99 {'>'}</h1> + </div> + </div> + + <form className='flex gap-x-3' onSubmit={handleSubmit}> + <input + type='text' + className='form-input' + placeholder='Cari Pengiriman...' + value='' + onChange={(e) => setInputQuery(e.target.value)} + /> + <button className='btn-light bg-transparent px-3' type='submit'> + <MagnifyingGlassIcon className='w-6' /> + </button> + </form> + </div> + </MobileView> + <DesktopView> + <div className='container mx-auto flex py-10'> + <div className='w-3/12 pr-4'> + <Menu /> + </div> + <div className='w-9/12'> + <div className='p-4 bg-white border border-gray_r-6 rounded mb-2'> + <h1 className='text-title-sm font-semibold'>Pengiriman</h1> + <div + class='flex items-center p-4 mb-4 text-sm text-yellow-800 rounded-lg bg-yellow-50' + role='alert' + > + <svg + class='flex-shrink-0 inline w-4 h-4 mr-3' + aria-hidden='true' + fill='currentColor' + viewBox='0 0 20 20' + > + <path d='M10 .5a9.5 9.5 0 1 0 9.5 9.5A9.51 9.51 0 0 0 10 .5ZM9.5 4a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3ZM12 15H8a1 1 0 0 1 0-2h1v-3H8a1 1 0 0 1 0-2h2a1 1 0 0 1 1 1v4h1a1 1 0 0 1 0 2Z' /> + </svg> + <div> + <span class='font-medium'>Warning alert!</span> Change a few things up and try + submitting again. + </div> + </div> + <div className='flex justify-between gap-x-5'> + <div class='max-w-sm p-6 bg-white border border-gray-200 rounded-lg shadow min-w-[268px]'> + <h2 class='mb-2 text-lg font-bold tracking-tight'>Pending</h2> + <div className='bg-red-100 border border-red-200 rounded-sm p-2 w-20 h-[39px] mb-2'> + <div> + <ImageNext + src='/images/BOX(1).svg' + width={25} + height={20} + style={{ stroke: 'red' }} + /> + </div> + </div> + <h1 className='text-xl font-bold'> + {shipments?.summary?.pendingCount} <span className='text-sm'>Pesanan</span> + </h1> + </div> + <div class='max-w-sm p-6 bg-white border border-gray-200 rounded-lg shadow min-w-[268px]'> + <h5 class='mb-2 text-lg font-bold tracking-tight'>Pengiriman</h5> + <div className='bg-yellow-100 border border-yellow-200 rounded-sm p-1 w-20 mb-2'> + <div> + <ImageNext src='/images/BOX_DELIVER_(1).svg' width={30} height={20} /> + </div> + </div> + <h1 className='text-xl font-bold'> + {shipments?.summary?.shipmentCount} <span className='text-sm'>Pesanan</span> + </h1> + </div> + <div class='max-w-sm p-6 bg-white border border-gray-200 rounded-lg shadow min-w-[268px]'> + <h5 class='mb-2 text-lg font-bold tracking-tight'>Pesanan Tiba</h5> + <div className='bg-green-100 border border-green-200 rounded-sm p-1 w-20 mb-2'> + <div> + <ImageNext + src='/images/open-box(1).svg' + width={30} + height={20} + className='stroke-orange-600' + /> + </div> + </div> + <h1 className='text-xl font-bold'> + {shipments?.summary?.completedCount} <span className='text-sm'>Pesanan</span> + </h1> + </div> + </div> + </div> + <div className='p-4 bg-white border border-gray_r-6 rounded'> + <div className='flex mb-6 items-center justify-between'> + <h1 className='text-title-sm font-semibold'>Detail Pengiriman</h1> + <form className='flex gap-x-2' onSubmit={handleSubmit}> + <input + type='text' + className='form-input' + placeholder='Cari Pengiriman...' + value='' + onChange={(e) => setInputQuery(e.target.value)} + /> + <button className='btn-light bg-transparent px-3' type='submit'> + <MagnifyingGlassIcon className='w-6' /> + </button> + </form> + </div> + <table className='table-data'> + <thead> + <tr> + <th>Tanggal</th> + <th>No. Resi</th> + <th>No. Pengiriman</th> + <th>Sales Order</th> + <th>Purchase Order</th> + <th>Expedisi</th> + <th>Status</th> + </tr> + </thead> + <tbody> + {!shipments && ( + <tr> + <td colSpan={7}> + <div className='flex justify-center my-2'> + <Spinner className='w-6 text-gray_r-12/50 fill-gray_r-12' /> + </div> + </td> + </tr> + )} + {shipments && shipments?.pickings?.length == 0 && ( + <tr> + <td colSpan={7}>Tidak ada transaksi</td> + </tr> + )} + {shipments?.pickings.map((shipment) => ( + <tr key={shipment.id}> + <td>{shipment.date || '-'}</td> + <td>{shipment.trackingNumber || '-'}</td> + <td>{shipment.name || '-'}</td> + <td>{shipment.saleOrder.name || '-'}</td> + <td>{shipment.saleOrder.clientOrderRef || '-'}</td> + <td>{shipment.carrierName || '-'}</td> + <td> + <button onClick={() => setIdAWB(shipment.id) }className='bg-red-600 border border-red-600 rounded-md text-sm text-white p-1 w-20'> + Lacak + </button> + </td> + </tr> + ))} + </tbody> + </table> + </div> + </div> + </div> + <Manifest idAWB={idAWB} closePopup={closePopup}/> + </DesktopView> + </> + ) +} + +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 --- /dev/null +++ b/src/lib/treckingAwb/api/getManifest.js 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 ( + <> + <BottomPopup + key={airway.waybillNumber} + title='Detail Pengiriman' + active={idAWB} + close={closePopup} + > + <div className='flex flex-col gap-y-4 my-4'> + <div className='flex justify-between'> + <div className='text-gray_r-11'>No Pengiriman</div> + <div>{airway?.deliveryOrder?.name}</div> + </div> + <div className='flex justify-between'> + <div className='text-gray_r-11'>Kurir</div> + <div>{airway?.deliveryOrder?.carrier}</div> + </div> + <div className='flex justify-between'> + <div className='text-gray_r-11'>No Resi</div> + <div>{airway?.waybillNumber}</div> + </div> + </div> + + <div className='pt-4'> + <div className='font-semibold text-body-1 mb-4'>Status Pengiriman</div> + <ol class='relative border-l border-gray_r-7'> + {airway?.manifests?.map((manifest, index) => ( + <li class='mb-6 ml-4' key={index}> + <div + class={`absolute w-3 h-3 rounded-full mt-1.5 -left-1.5 border ${ + index == 0 ? 'bg-red-600 border-red-600' : 'bg-gray_r-7 border-white' + }`} + /> + <time class='text-sm leading-none text-gray-400'>{manifest.datetime}</time> + <p + class={`leading-6 font-medium text-body-2 mt-2 ${ + index == 0 ? 'text-red-600' : 'text-gray_r-11' + }`} + > + {manifest.description} + </p> + </li> + ))} + {(!airway?.manifests || airway?.manifests?.length == 0) && ( + <div className='badge-red text-sm'>Belum ada pengiriman</div> + )} + </ol> + </div> + </BottomPopup> + </> + ) +} + +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() { <div className='divide-y divide-gray_r-6 border-y border-gray_r-6 mt-4'> <LinkItem href='/my/quotations'>Daftar Quotation</LinkItem> <LinkItem href='/my/transactions'>Daftar Transaksi</LinkItem> + <LinkItem href='/my/shipments'>Daftar Pengiriman</LinkItem> <LinkItem href='/my/invoices'>Invoice & Faktur Pajak</LinkItem> <LinkItem href='/my/wishlist'>Wishlist</LinkItem> </div> 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 ( + <IsAuth> + <Seo title='Shipments - Indoteknik.com' /> + + <MobileView> + <AppLayout title='Pengiriman'> + <ShipmentsComponent /> + </AppLayout> + </MobileView> + + <DesktopView> + <BasicLayout> + <ShipmentsComponent /> + </BasicLayout> + </DesktopView> + </IsAuth> + ) +} |
