// src/components/InvoiceForm.jsx import React, { useState } from 'react'; function InvoiceForm ({ onSubmit }) { const [invoiceData, setInvoiceData] = useState({ invoiceNumber: '', invoiceDate: '', vendorNumber: '', vendorName: '', poNumber: '', poDate: '', grDate: '', amount: '', currency: 'USD', paymentTerms: '', taxAmount: '', taxCode: '', description: '', costCenter: '', glAccount: '', lineItems: [ { itemNumber: '', description: '', quantity: '', unitPrice: '', totalPrice: '' } ] }); const handleChange = (e) => { const { name, value } = e.target; setInvoiceData({ ...invoiceData, [name]: value }); }; const handleLineItemChange = (index, e) => { const { name, value } = e.target; const newLineItems = [...invoiceData.lineItems]; newLineItems[index][name] = value; setInvoiceData({ ...invoiceData, lineItems: newLineItems }); }; const addLineItem = () => { setInvoiceData({ ...invoiceData, lineItems: [ ...invoiceData.lineItems, { itemNumber: '', description: '', quantity: '', unitPrice: '', totalPrice: '' } ] }); }; const handleSubmit = (e) => { e.preventDefault(); onSubmit(invoiceData); }; return (

Enter Invoice Data

{/* Add more fields here following the same pattern */} {/* Vendor Information */} {/* Purchase Order Information */} {/* Goods Receipt Date, Amount, etc. */}
{invoiceData.lineItems.map((item, index) => (
handleLineItemChange(index, e)} className="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-600 mb-2" placeholder="Description" /> handleLineItemChange(index, e)} className="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-600 mb-2" placeholder="Quantity" /> handleLineItemChange(index, e)} className="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-600 mb-2" placeholder="Unit Price" /> handleLineItemChange(index, e)} className="w-full px-3 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-600" placeholder="Total Price" />
))}
); }; export default InvoiceForm;