Skip to content
Snippets Groups Projects
Commit d4ef1880 authored by DewanaGustavus's avatar DewanaGustavus
Browse files

feat : picked order finish order

parent af701050
Branches
Tags
No related merge requests found
...@@ -72,3 +72,16 @@ export async function updateOrderAPI(orderId : number, username : string, status ...@@ -72,3 +72,16 @@ export async function updateOrderAPI(orderId : number, username : string, status
throw err; throw err;
} }
} }
export async function finishOrderAPI(orderId : number, username : string) {
try {
const API_URL = REST_URL + "/order/finish-order";
const data = {orderId : orderId, username : username};
console.log("GOLGOLOG", data);
const response = await axios.put(API_URL, data);
return response;
} catch(err) {
alert(err);
throw err;
}
}
...@@ -18,7 +18,7 @@ export default function PickedOrder() { ...@@ -18,7 +18,7 @@ export default function PickedOrder() {
useEffect(() => { useEffect(() => {
getUserDetail(user.username ? user.username : "").then( getUserDetail(user.username ? user.username : "").then(
(userDetail) => { (userDetail) => {
const response = getOrderByCourier(userDetail.data.id); const response = getOrderByCourier(userDetail.data.id ? userDetail.data.id : 0);
response.then((order) => { response.then((order) => {
console.log(order.data); console.log(order.data);
setOrders(order.data); setOrders(order.data);
......
...@@ -19,41 +19,52 @@ import { ...@@ -19,41 +19,52 @@ import {
import { useEffect, useState } from 'react' import { useEffect, useState } from 'react'
import OrderDetail from '../interfaces/OrderDetail'; import OrderDetail from '../interfaces/OrderDetail';
import OrderInterface from '../interfaces/OrderInterface'; import OrderInterface from '../interfaces/OrderInterface';
import { getOrderById, getOrderDetails, updateOrder } from '../utils/Order'; import { finishOrder, getOrderById, getOrderDetails, updateOrder } from '../utils/Order';
import { useParams } from 'react-router-dom'; import { useNavigate, useParams } from 'react-router-dom';
import { getUser } from '../utils/LocalStorage'; import { getUser } from '../utils/LocalStorage';
export default function PickedOrderDetail() { export default function PickedOrderDetail() {
const username = getUser(); const user = getUser();
const { id } = useParams(); const { id } = useParams();
const orderId = parseInt(id ? id : "0"); const orderId = parseInt(id ? id : "0");
const [order, setOrder] = useState<OrderInterface>(); const [order, setOrder] = useState<OrderInterface>();
const [orderDetails, setOrderDetails] = useState<OrderDetail[]>([]); const [orderDetails, setOrderDetails] = useState<OrderDetail[]>([]);
const [pickupStatus, setPickupStatus] = useState(false); const [pickupStatus, setPickupStatus] = useState(false);
const [newDescription, setNewDescription] = useState(""); const [newDescription, setNewDescription] = useState("");
const navigate = useNavigate();
function changeDescription() { function changeDescription() {
if(!username) { if(!user.username) {
alert("Perlu log in"); alert("Perlu log in");
return; return;
} }
updateOrder(orderId, username, order?.status ? order.status : "pickup", newDescription); updateOrder(orderId, user.username, order?.status ? order.status : "pickup", newDescription);
setOrder({...order, keterangan : newDescription}) setOrder({...order, keterangan : newDescription});
} }
function changeTransit() { function changeTransit() {
if(!username) { if(!user.username) {
alert("Perlu log in"); alert("Perlu log in");
return; return;
} }
updateOrder(orderId, username, "transit", order?.keterangan ? order.keterangan : ""); updateOrder(orderId, user.username, "transit", order?.keterangan ? order.keterangan : "");
setOrder({...order, status : "transit"}) setOrder({...order, status : "transit"});
setPickupStatus(false); setPickupStatus(false);
} }
function finishingOrder() {
if(!user.username) {
alert("Perlu log in");
return;
}
finishOrder(orderId, user.username);
navigate("/History");
}
useEffect(() => { useEffect(() => {
const orderResponse = getOrderById(orderId); const orderResponse = getOrderById(orderId);
const detailResponse = getOrderDetails(orderId); const detailResponse = getOrderDetails(orderId);
...@@ -176,7 +187,6 @@ export default function PickedOrderDetail() { ...@@ -176,7 +187,6 @@ export default function PickedOrderDetail() {
: :
<> <>
</>} </>}
{/* TODO : make button functionality */}
<Button <Button
display={{ base: 'none', md: 'inline-flex' }} display={{ base: 'none', md: 'inline-flex' }}
fontSize={'sm'} fontSize={'sm'}
...@@ -186,6 +196,7 @@ export default function PickedOrderDetail() { ...@@ -186,6 +196,7 @@ export default function PickedOrderDetail() {
_hover={{ _hover={{
bg: 'blue.300', bg: 'blue.300',
}} }}
onClick={finishingOrder}
> >
Selesaikan Pengantaran Selesaikan Pengantaran
</Button> </Button>
......
import { fetchAvailableOrder, fetchOrderByCourier, fetchOrderById, fetchOrderDetails, pickOrderAPI, updateOrderAPI } from "../api/Order"; import { fetchAvailableOrder, fetchOrderByCourier, fetchOrderById, fetchOrderDetails, finishOrderAPI, pickOrderAPI, updateOrderAPI } from "../api/Order";
export async function getAvailableOrder() { export async function getAvailableOrder() {
const availableOrders = await fetchAvailableOrder(); const availableOrders = await fetchAvailableOrder();
...@@ -29,3 +29,8 @@ export async function updateOrder(orderId : number, username : string, status : ...@@ -29,3 +29,8 @@ export async function updateOrder(orderId : number, username : string, status :
const response = await updateOrderAPI(orderId, username, status, description); const response = await updateOrderAPI(orderId, username, status, description);
return response; return response;
} }
export async function finishOrder(orderId : number, username : string) {
const response = await finishOrderAPI(orderId, username);
return response;
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment