|
|
|
@ -123,8 +123,21 @@ const StockPage: React.FC = () => { |
|
|
|
|
if (newStock.newAddition) { |
|
|
|
|
newStock.stuffId = null; |
|
|
|
|
} |
|
|
|
|
if (isNaN(newStock.amount)) return; |
|
|
|
|
if (newStock.price === null || isNaN(newStock.price)) return; |
|
|
|
|
|
|
|
|
|
if (!newStock.stuffId && !newStock.stuffName) { |
|
|
|
|
showErrorMessage(GENERAL_ERRORS.INVALID_STUFF_NAME); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (isNaN(newStock.amount)) { |
|
|
|
|
showErrorMessage(GENERAL_ERRORS.INVALID_AMOUNT); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (newStock.price === null || isNaN(newStock.price)) { |
|
|
|
|
showErrorMessage(GENERAL_ERRORS.INVALID_PRICE); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (newStock.buyAmount !== null && isNaN(newStock.buyAmount)) { |
|
|
|
|
newStock.buyAmount = null; |
|
|
|
@ -684,11 +697,11 @@ const StockPage: React.FC = () => { |
|
|
|
|
label="購入店舗" |
|
|
|
|
fullWidth |
|
|
|
|
value={newStock.shop} |
|
|
|
|
onChange={(e) => setNewStock({...newStock, shop: e.target.value})} |
|
|
|
|
onChange={(e) => setNewStock({ ...newStock, shop: e.target.value })} |
|
|
|
|
/> |
|
|
|
|
{/* 購入日・消費期限を横並びに */} |
|
|
|
|
<Box sx={{ display: 'flex', gap: 2, mb: 2 }}> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{/* 購入日・賞味期限入力 */} |
|
|
|
|
<BuyExpDateSelect newStock={newStock} setNewStock={({ buyDate, expDate }) => setNewStock({ ...newStock, buyDate, expDate })} /> |
|
|
|
|
|
|
|
|
@ -706,15 +719,15 @@ const StockPage: React.FC = () => { |
|
|
|
|
{/* 各カテゴリを表示 */} |
|
|
|
|
{CATEGORY_NAMES.map(category => { |
|
|
|
|
return ( |
|
|
|
|
<Box sx={{ padding: "1rem" }}> |
|
|
|
|
<Typography variant="h5" component="h1" gutterBottom |
|
|
|
|
onClick={() => setOpenCategory({...openCategory, [category]: !openCategory[category]})} |
|
|
|
|
> |
|
|
|
|
{!openCategory[category] ? <ArrowDownIcon color="primary" /> : <ArrowUpIcon color="primary" />} |
|
|
|
|
{category} |
|
|
|
|
</Typography> |
|
|
|
|
{openCategory[category] && StockTable(stocks, [category])} |
|
|
|
|
</Box> |
|
|
|
|
<Box sx={{ padding: "1rem" }}> |
|
|
|
|
<Typography variant="h5" component="h1" gutterBottom |
|
|
|
|
onClick={() => setOpenCategory({ ...openCategory, [category]: !openCategory[category] })} |
|
|
|
|
> |
|
|
|
|
{!openCategory[category] ? <ArrowDownIcon color="primary" /> : <ArrowUpIcon color="primary" />} |
|
|
|
|
{category} |
|
|
|
|
</Typography> |
|
|
|
|
{openCategory[category] && StockTable(stocks, [category])} |
|
|
|
|
</Box> |
|
|
|
|
) |
|
|
|
|
})} |
|
|
|
|
|
|
|
|
@ -727,7 +740,7 @@ const StockPage: React.FC = () => { |
|
|
|
|
材料の追加 |
|
|
|
|
</Typography> */} |
|
|
|
|
</Box> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div> |
|
|
|
|
); |
|
|
|
|
}; |
|
|
|
|