import React, { useState, useEffect } from "react"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Badge } from "@/components/ui/badge"; import { Switch } from "@/components/ui/switch"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@/components/ui/select"; import { Save, Loader2, Link2, Building2, FileText, Mail, CheckCircle, AlertCircle } from "lucide-react"; const ERP_SYSTEMS = [ { value: "None", label: "No ERP Integration" }, { value: "SAP Ariba", label: "SAP Ariba" }, { value: "Fieldglass", label: "SAP Fieldglass" }, { value: "CrunchTime", label: "CrunchTime" }, { value: "Coupa", label: "Coupa" }, { value: "Oracle NetSuite", label: "Oracle NetSuite" }, { value: "Workday", label: "Workday" }, { value: "Other", label: "Other" }, ]; const EDI_FORMATS = [ { value: "CSV", label: "CSV (Excel Compatible)" }, { value: "EDI 810", label: "EDI 810 (Standard Invoice)" }, { value: "cXML", label: "cXML (Ariba/Coupa)" }, { value: "JSON", label: "JSON (API Format)" }, { value: "Custom", label: "Custom Template" }, ]; export default function ERPSettingsTab({ business, onSave, isSaving }) { const [settings, setSettings] = useState({ erp_system: business?.erp_system || "None", erp_vendor_id: business?.erp_vendor_id || "", erp_cost_center: business?.erp_cost_center || "", edi_enabled: business?.edi_enabled || false, edi_format: business?.edi_format || "CSV", invoice_email: business?.invoice_email || "", po_required: business?.po_required || false, }); useEffect(() => { if (business) { setSettings({ erp_system: business.erp_system || "None", erp_vendor_id: business.erp_vendor_id || "", erp_cost_center: business.erp_cost_center || "", edi_enabled: business.edi_enabled || false, edi_format: business.edi_format || "CSV", invoice_email: business.invoice_email || "", po_required: business.po_required || false, }); } }, [business]); const handleChange = (field, value) => { setSettings(prev => ({ ...prev, [field]: value })); }; const handleSubmit = () => { onSave(settings); }; const isConfigured = settings.erp_system !== "None" && settings.erp_vendor_id; return (
{isConfigured ? 'ERP Integration Active' : 'ERP Integration Not Configured'}
{isConfigured ? `Connected to ${settings.erp_system} • Vendor ID: ${settings.erp_vendor_id}` : 'Configure ERP settings to enable automated invoice delivery'}
Client's procurement or ERP system
Your vendor identifier in client's system
Default cost center for invoice allocation
Accounts payable email for invoice delivery
Enable EDI Integration
Automatically format invoices for EDI transmission
Default format for invoice exports
PO Required
Require PO number on invoices