✨ Show details about purchase

🐛 Update user balance
This commit is contained in:
nikolark committed 2021-12-04 23:30:44 +01:00
1 parent 3d93a645ad
commit 2bcc993aaa
8 files changed
+87 -24

No files matched your search

@@ -9,6 +9,7 @@ mutation CreateDeposit($userId: ID!, $amount: Int!) {
firstName
lastName
profile {
id
balance
}
}
+13 -10
View File
@@ -10,13 +10,13 @@ import { useRegister } from "./useRegister";
const USER_EXTERNAL = "external";
type OrderLine = {
type OrderLineInput = {
productId: string;
amount: number;
};
const sumTotal = (products: Product[], order: OrderLine[], isExternal: boolean) => {
const prices = order.map((orderLine: OrderLine) => {
const sumTotal = (products: Product[], order: OrderLineInput[], isExternal: boolean) => {
const prices = order.map((orderLine: OrderLineInput) => {
const product = products.find((product: Product) => product.id === orderLine.productId);
if (!product) return 0;
return orderLine.amount * (isExternal ? product.salePriceExt : product.salePriceInt);
@@ -27,7 +27,7 @@ const sumTotal = (products: Product[], order: OrderLine[], isExternal: boolean)
export const Register: React.FC = () => {
const { users, products, loading, showAll, setShowAll } = useRegister();
const [selectedUser, setSelectedUser] = useState("");
const [order, setOrder] = useState<OrderLine[]>([]);
const [order, setOrder] = useState<OrderLineInput[]>([]);
const [createOrderMutation, { loading: mutateLoading }] = useMutation(CreateOrderDocument, {
variables: { customerId: selectedUser, isExternal: selectedUser === USER_EXTERNAL, orderLines: order },
});
@@ -39,7 +39,7 @@ export const Register: React.FC = () => {
};
const addToOrder = (productId: string) => {
let added = false;
const newOrder = order.map((orderLine: OrderLine) => {
const newOrder = order.map((orderLine: OrderLineInput) => {
if (orderLine.productId === productId) {
added = true;
return { ...orderLine, amount: orderLine.amount + 1 };
@@ -54,8 +54,6 @@ export const Register: React.FC = () => {
const total = sumTotal(products, order, selectedUser === USER_EXTERNAL);
console.log(selectedUser, order);
if (loading) {
return <div>Loading...</div>;
}
@@ -72,7 +70,12 @@ export const Register: React.FC = () => {
const { data } = res;
const createOrderResponse = data?.createOrder;
if (createOrderResponse?.__typename === "CreateOrderSuccess") {
showToast("Woop");
const { order } = createOrderResponse;
const orderLines = (order?.orderlines || [])
.map((orderLine) => `${orderLine.amount} ${orderLine.product.name}`)
.join(", ");
const who = !order.customer ? "Ekstern" : `${order.customer?.firstName} ${order.customer?.lastName}`;
showToast(`${who} kjøpte: ${orderLines}`);
reset();
return;
}
@@ -118,8 +121,8 @@ export const Register: React.FC = () => {
key={product.id}
product={product}
onProduct={() => addToOrder(product.id)}
amount={order.find((orderLine: OrderLine) => orderLine.productId === product.id)?.amount || 0}
active={order.some((orderLine: OrderLine) => orderLine.productId === product.id)}
amount={order.find((orderLine: OrderLineInput) => orderLine.productId === product.id)?.amount || 0}
active={order.some((orderLine: OrderLineInput) => orderLine.productId === product.id)}
/>
))}
</div>
@@ -1,10 +1,28 @@
mutation CreateOrder($customerId: ID!, $orderLines:[OrderLineInput!]!, $isExternal: Boolean) {
mutation CreateOrder($customerId: ID!, $orderLines:[OrderLineInput!]!, $isExternal: Boolean!) {
createOrder(customerId: $customerId, orderLines: $orderLines, isExternal: $isExternal) {
... on CreateOrderSuccess {
order {
id
isExternal
customer {
id
firstName
lastName
profile {
id
balance
}
}
orderlines {
id
amount
unitPrice
product {
id
name
salePriceExt
salePriceInt
}
}
orderSum
}