|
|
|
@ -149,7 +149,7 @@ const StockPage: React.FC = () => { |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* カテゴリー選択?? |
|
|
|
|
* カテゴリー選択 |
|
|
|
|
*/ |
|
|
|
|
const onChangeCategory = async (category: string) => { |
|
|
|
|
setNewStock({ ...newStock, category }) |
|
|
|
@ -273,8 +273,6 @@ const StockPage: React.FC = () => { |
|
|
|
|
<TableRow> |
|
|
|
|
<TableCell>食材名</TableCell> |
|
|
|
|
<TableCell>数量</TableCell> |
|
|
|
|
<TableCell>購入価格</TableCell> |
|
|
|
|
<TableCell>購入日</TableCell> |
|
|
|
|
<TableCell>消費・賞味期限</TableCell> |
|
|
|
|
</TableRow> |
|
|
|
|
</TableHead> |
|
|
|
@ -293,8 +291,6 @@ const StockPage: React.FC = () => { |
|
|
|
|
> |
|
|
|
|
<TableCell>{stock.stuffName}</TableCell> |
|
|
|
|
<TableCell>{stock.amount}</TableCell> |
|
|
|
|
<TableCell>{stock.price}</TableCell> |
|
|
|
|
<TableCell>{formatDate(stock.buyDate)}</TableCell> |
|
|
|
|
<TableCell |
|
|
|
|
style={daysLeft <= 3 ? { color: "red", fontWeight: "bold" } : {}} |
|
|
|
|
> |
|
|
|
@ -333,6 +329,54 @@ const StockPage: React.FC = () => { |
|
|
|
|
value={editStock.price} |
|
|
|
|
onChange={handleChange} |
|
|
|
|
/> |
|
|
|
|
{/* 購入日・消費期限を横並びに */} |
|
|
|
|
<Box sx={{ display: 'flex', gap: 2, mb: 2 }}> |
|
|
|
|
{/* 購入日 */} |
|
|
|
|
<DatePicker |
|
|
|
|
selected={editStock.buyDate ? new Date(editStock.buyDate) : null} |
|
|
|
|
onChange={(date) => { |
|
|
|
|
if (editStock) { |
|
|
|
|
setEditStock({ |
|
|
|
|
...editStock, |
|
|
|
|
buyDate: date ? formatDateLocal(date) : '', |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}} |
|
|
|
|
dateFormat="yyyy/MM/dd" |
|
|
|
|
customInput={ |
|
|
|
|
<TextField |
|
|
|
|
margin="normal" |
|
|
|
|
label="購入日 (yyyy/MM/dd)" |
|
|
|
|
fullWidth |
|
|
|
|
name="buyDate" |
|
|
|
|
/> |
|
|
|
|
} |
|
|
|
|
isClearable |
|
|
|
|
/> |
|
|
|
|
{/* 消費・賞味期限 */} |
|
|
|
|
<DatePicker |
|
|
|
|
selected={editStock.expDate ? new Date(editStock.expDate) : null} |
|
|
|
|
onChange={(date) => { |
|
|
|
|
if (editStock) { |
|
|
|
|
setEditStock({ |
|
|
|
|
...editStock, |
|
|
|
|
expDate: date ? formatDateLocal(date) : '', |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
}} |
|
|
|
|
dateFormat="yyyy/MM/dd" |
|
|
|
|
customInput={ |
|
|
|
|
<TextField |
|
|
|
|
margin="normal" |
|
|
|
|
label="消費・賞味期限 (yyyy/MM/dd)" |
|
|
|
|
fullWidth |
|
|
|
|
name="expDate" |
|
|
|
|
/> |
|
|
|
|
} |
|
|
|
|
isClearable |
|
|
|
|
/> |
|
|
|
|
</Box> |
|
|
|
|
{/* 以前の書き方 |
|
|
|
|
<TextField |
|
|
|
|
label="購入日 (yyyy-MM-dd)" |
|
|
|
|
fullWidth |
|
|
|
@ -348,18 +392,15 @@ const StockPage: React.FC = () => { |
|
|
|
|
name="expDate" |
|
|
|
|
value={editStock.expDate} |
|
|
|
|
onChange={handleChange} |
|
|
|
|
/> |
|
|
|
|
|
|
|
|
|
<Button onClick={() => { setIsEditOpen(false); setSelectedRow(null); }} sx={{ mt: 3, mb: 2, left: '68%' }}>キャンセル</Button> |
|
|
|
|
<Button |
|
|
|
|
variant="contained" |
|
|
|
|
color="success" |
|
|
|
|
onClick={handleApplyChanges} |
|
|
|
|
sx={{ mt: 3, mb: 2, left: "68%" }} |
|
|
|
|
> |
|
|
|
|
変更を適用 |
|
|
|
|
</Button> |
|
|
|
|
|
|
|
|
|
/> */} |
|
|
|
|
<Box sx={{ display: 'flex', justifyContent: 'flex-end', gap: 2, mt: 3, mb: 2 }}> |
|
|
|
|
<Button onClick={() => { setIsEditOpen(false); setSelectedRow(null); }}> |
|
|
|
|
キャンセル |
|
|
|
|
</Button> |
|
|
|
|
<Button variant="contained" color="success" onClick={handleApplyChanges}> |
|
|
|
|
変更を適用 |
|
|
|
|
</Button> |
|
|
|
|
</Box> |
|
|
|
|
</> |
|
|
|
|
)} |
|
|
|
|
</DialogContent> |
|
|
|
@ -378,13 +419,26 @@ const StockPage: React.FC = () => { |
|
|
|
|
<> |
|
|
|
|
<Typography variant="h4">【{selectedRow.stuffName}】を削除します。</Typography> |
|
|
|
|
<Typography variant="body1" color="error">⚠️ 注意: 削除すると復元できません。</Typography> |
|
|
|
|
<Button onClick={() => { setIsDeleteOpen(false); setSelectedRow(null); }} sx={{ mt: 3, mb: 2, left: '70%' }}>キャンセル</Button> |
|
|
|
|
<Button variant="contained" color="error" onClick={() => { |
|
|
|
|
handleDeleteStock(selectedRow.stockId); |
|
|
|
|
setIsDeleteOpen(false); // 削除処理後にダイアログを閉じる
|
|
|
|
|
setSelectedRow(null); // セルの選択を解除
|
|
|
|
|
}} |
|
|
|
|
style={{ marginTop: "10px" }} sx={{ mt: 3, mb: 2, left: '72%' }}>削除</Button> |
|
|
|
|
|
|
|
|
|
<Box sx={{ display: 'flex', justifyContent: 'flex-end', gap: 2, mt: 3, mb: 2 }}> |
|
|
|
|
<Button onClick={() => { |
|
|
|
|
setIsDeleteOpen(false); |
|
|
|
|
setSelectedRow(null); |
|
|
|
|
}}> |
|
|
|
|
キャンセル |
|
|
|
|
</Button> |
|
|
|
|
<Button |
|
|
|
|
variant="contained" |
|
|
|
|
color="error" |
|
|
|
|
onClick={() => { |
|
|
|
|
handleDeleteStock(selectedRow.stockId); |
|
|
|
|
setIsDeleteOpen(false); |
|
|
|
|
setSelectedRow(null); |
|
|
|
|
}} |
|
|
|
|
> |
|
|
|
|
削除 |
|
|
|
|
</Button> |
|
|
|
|
</Box> |
|
|
|
|
</> |
|
|
|
|
)} |
|
|
|
|
</DialogContent> |
|
|
|
@ -401,6 +455,7 @@ const StockPage: React.FC = () => { |
|
|
|
|
</Typography> |
|
|
|
|
|
|
|
|
|
<Box sx={{ textAlign: 'right' }}> |
|
|
|
|
{/* <Box sx={{ position: 'fixed', top: 16, right: 16, zIndex: 1000, display: 'flex', gap: 2 }}> */} |
|
|
|
|
{/* 在庫の食材追加ボタン */} |
|
|
|
|
<Button variant="contained" color="primary" onClick={handleOpenAdd} sx={{ mt: 3, mb: 2, mr: 1 }}> |
|
|
|
|
追加 |
|
|
|
@ -557,8 +612,9 @@ const StockPage: React.FC = () => { |
|
|
|
|
</Dialog> |
|
|
|
|
|
|
|
|
|
{/* 在庫の食材編集ボタン(全テーブル共通) */} |
|
|
|
|
<Button variant="contained" color="success" onClick={handleOpenEdit} sx={{ mt: 3, mb: 2, mr: 1 }}> |
|
|
|
|
編集 |
|
|
|
|
<Button variant="contained" color="success" onClick={handleOpenEdit} sx={{ |
|
|
|
|
mt: 3, mb: 2, mr: 1 }}> |
|
|
|
|
詳細・編集 |
|
|
|
|
</Button> |
|
|
|
|
|
|
|
|
|
{/* 在庫の食材削除ボタン (全テーブル共通) */} |
|
|
|
|