// 1. Initialize Supabase Connection
const SUPABASE_URL = 'sb_publishable__yS17L-9V3YHKPSpXWOSFw_KEepf5pw';
const SUPABASE_ANON_KEY = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6ImFobWNpc2lteWVuZGR1ZGNpbGhkIiwicm9sZSI6ImFub24iLCJpYXQiOjE3ODQ1MzEyMDksImV4cCI6MjEwMDEwNzIwOX0.36XCdprgLAa88EVoGUHR9J0lBm1LTsDRtBZQG1so5gU';
const supabase = supabase.createClient(SUPABASE_URL, SUPABASE_ANON_KEY);
// 2. Save Invoice Function Example
async function saveInvoiceToDatabase(invoiceData, itemsList) {
// Insert Invoice Header
const { data: invoice, error: invoiceErr } = await supabase
.from('invoices')
.insert([{
do_number: invoiceData.doNumber,
customer_name: invoiceData.customerName,
invoice_date: invoiceData.date,
subtotal: invoiceData.subtotal,
total_amount: invoiceData.total
}])
.select()
.single();
if (invoiceErr) {
console.error('Error saving invoice:', invoiceErr.message);
return;
}
// Format line items linked to invoice ID
const formattedItems = itemsList.map(item => ({
invoice_id: invoice.id,
description: item.description,
quantity: item.qty,
unit_price: item.price,
line_total: item.total
}));
// Insert Line Items
const { error: itemsErr } = await supabase
.from('invoice_items')
.insert(formattedItems);
if (itemsErr) console.error('Error saving items:', itemsErr.message);
else alert('Invoice saved successfully to Supabase!');
}