feat: residues accounting
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
import { useEffect, useState } from "react";
|
||||
import { ResidualPalletSchema, ResiduesService } from "../../../../../client";
|
||||
import { modals } from "@mantine/modals";
|
||||
import { notifications } from "../../../../../shared/lib/notifications.ts";
|
||||
|
||||
type Props = {
|
||||
palletId: number;
|
||||
}
|
||||
|
||||
const useReceiptPallet = ({ palletId }: Props) => {
|
||||
const [pallet, setPallet] = useState<ResidualPalletSchema | null>(null);
|
||||
const [clientId, setClientId] = useState<number | null>(null);
|
||||
|
||||
useEffect(() => {
|
||||
fetchPallet(palletId);
|
||||
}, []);
|
||||
|
||||
const fetchPallet = (palletId?: number) => {
|
||||
const id = palletId ?? pallet?.id;
|
||||
if (!id) return;
|
||||
|
||||
ResiduesService.getResidualPallet({ palletId: id })
|
||||
.then(res => {
|
||||
setPallet(res.pallet);
|
||||
setClientId(res.clientId);
|
||||
})
|
||||
.catch(err => console.log(err));
|
||||
};
|
||||
|
||||
const onCreateProductClick = () => {
|
||||
if (!(pallet && clientId)) return;
|
||||
modals.openContextModal({
|
||||
modal: "receiptModal",
|
||||
title: "Добавление товара",
|
||||
withCloseButton: false,
|
||||
innerProps: {
|
||||
clientId,
|
||||
isBox: false,
|
||||
object: pallet,
|
||||
fetchObject: fetchPallet,
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
const onCreateBoxClick = () => {
|
||||
ResiduesService.createResidualBox({
|
||||
requestBody: {
|
||||
palletId,
|
||||
clientId: null,
|
||||
},
|
||||
})
|
||||
.then(({ ok, message }) => {
|
||||
if (!ok) {
|
||||
notifications.error({ message });
|
||||
}
|
||||
fetchPallet();
|
||||
})
|
||||
.catch(err => console.log(err));
|
||||
};
|
||||
|
||||
return {
|
||||
pallet,
|
||||
fetchPallet,
|
||||
clientId,
|
||||
onCreateProductClick,
|
||||
onCreateBoxClick,
|
||||
};
|
||||
};
|
||||
|
||||
export default useReceiptPallet;
|
||||
Reference in New Issue
Block a user