import { PureComponent } from 'react';
import Box from '@mui/material/Box';
import Typography from '@mui/material/Typography';
import WarehouseIcon from '@mui/icons-material/Warehouse';
import EditOutlinedIcon from '@mui/icons-material/EditOutlined';
import Tooltip from '@mui/material/Tooltip';
import { PanelTile } from 'dashgui/panels';
import { formatStock } from '../../../pages/artikel/searchFormat';
import ArticleStockAdjustDialog from '../ArticleStockAdjustDialog';
const SECOND_ROW_MIN_HEIGHT = 220;
export default class ArticleViewStock extends PureComponent {
constructor(props) {
super(props);
this.state = {
adjustOpen: false,
};
this.handleOpenAdjust = this.handleOpenAdjust.bind(this);
this.handleCloseAdjust = this.handleCloseAdjust.bind(this);
}
handleOpenAdjust() {
this.setState({ adjustOpen: true });
}
handleCloseAdjust() {
this.setState({ adjustOpen: false });
}
render() {
const { article: articleData } = this.props;
const { adjustOpen } = this.state;
const isTrackStock =
articleData?.track_stock !== false && articleData?.track_stock !== 0;
const rawWarehouses = Array.isArray(articleData?.warehouses)
? articleData.warehouses
: [];
const warehouses = rawWarehouses.filter((wh) => (Number(wh.stock) || 0) > 0);
const hasWarehouses = warehouses.length > 0;
const totalStock = rawWarehouses.length > 0
? rawWarehouses.reduce((sum, wh) => sum + (Number(wh.stock) || 0), 0)
: articleData?.stock != null
? Number(articleData.stock)
: 0;
const rawUnit =
articleData?.unit?.symbol ||
articleData?.unit?.name ||
'';
const unit =
rawUnit && !['stk', 'stück', 'pc', 'stk.'].includes(rawUnit.trim().toLowerCase())
? rawUnit
: '';
return (
<>
{/* Top section: Headline and Total Stock */}
Bestand
{isTrackStock ? (
0 ? 'text.primary' : 'text.secondary',
}}
>
{formatStock(totalStock)}
{unit ? (
{unit}
) : null}
) : (
Keine Erfassung
Bestand wird nicht überwacht
)}
{/* Bottom section: Per-warehouse breakdown */}
{isTrackStock && hasWarehouses ? (
{warehouses.map((wh) => (
{wh.name}
0
? 'text.primary'
: 'text.secondary',
}}
>
{formatStock(wh.stock)}
))}
) : null}
>
);
}
}