import React, { useState, useEffect } from ‘react’; import { Card, CardHeader, CardTitle, CardContent } from ‘@/components/ui/card’; import { Button } from ‘@/components/ui/button’; import { Input } from ‘@/components/ui/input’; import { Label } from ‘@/components/ui/label’; import { Select } from ‘@/components/ui/select’; import { Printer, Search, Plus, Check } from ‘lucide-react’; const WarehouseManagement = () => { const [receipts, setReceipts] = useState([]); const [nextReceiptNumber, setNextReceiptNumber] = useState(1); const [formData, setFormData] = useState({ vendor: ”, truckingCompany: ”, date: new Date().toISOString().split(‘T’)[0], pieces: ”, unitType: ‘box’, weight: ”, dimensions: ”, location: ”, description: ”, comment: ”, attachments: [], }); const unitTypes = [‘box’, ‘pail’, ‘drum’, ‘pallet’, ‘crate’, ‘envelope’]; const handleSubmit = (e) => { e.preventDefault(); const newReceipt = { id: `WR${String(nextReceiptNumber).padStart(6, ‘0’)}`, …formData, status: ‘in-warehouse’, items: Array(parseInt(formData.pieces)).fill(null).map((_, index) => ({ pieceId: `${nextReceiptNumber}-${index + 1}`, status: ‘in-warehouse’ })) }; setReceipts([…receipts, newReceipt]); setNextReceiptNumber(nextReceiptNumber + 1); setFormData({ vendor: ”, truckingCompany: ”, date: new Date().toISOString().split(‘T’)[0], pieces: ”, unitType: ‘box’, weight: ”, dimensions: ”, location: ”, description: ”, comment: ”, attachments: [], }); }; const markItemUsed = (receiptId, pieceId) => { setReceipts(receipts.map(receipt => { if (receipt.id === receiptId) { const updatedItems = receipt.items.map(item => { if (item.pieceId === pieceId) { return { …item, status: ‘used’ }; } return item; }); return { …receipt, items: updatedItems, status: updatedItems.every(item => item.status === ‘used’) ? ‘completed’ : ‘in-warehouse’ }; } return receipt; })); }; const printLabel = (receipt, piece) => { // In a real implementation, this would interface with a printer API const labelContent = ` Receipt: ${receipt.id} Piece: ${piece.pieceId} Vendor: ${receipt.vendor} Type: ${receipt.unitType} Location: ${receipt.location} `; console.log(‘Printing label:’, labelContent); }; const printReceipt = (receipt) => { // In a real implementation, this would interface with a printer API console.log(‘Printing receipt:’, receipt); }; return (
New Warehouse Receipt
Next Receipt Number: WR{String(nextReceiptNumber).padStart(6, ‘0’)}
setFormData({…formData, vendor: e.target.value})} required />
setFormData({…formData, truckingCompany: e.target.value})} required />
setFormData({…formData, date: e.target.value})} required />
setFormData({…formData, pieces: e.target.value})} required />
setFormData({…formData, weight: e.target.value})} required />
setFormData({…formData, dimensions: e.target.value})} required />
setFormData({…formData, location: e.target.value})} required />
setFormData({…formData, description: e.target.value})} required />