diff --git a/app/api/invoices/[id]/convert/route.ts b/app/api/invoices/[id]/convert/route.ts index d5b4da30..352dfb70 100644 --- a/app/api/invoices/[id]/convert/route.ts +++ b/app/api/invoices/[id]/convert/route.ts @@ -56,7 +56,7 @@ export async function POST( // Generate real invoice number const { data: invoiceNumber } = await supabase.rpc('generate_invoice_number', { - p_user_id: user.id, + p_company_id: companyId, }) // Create the real invoice diff --git a/app/api/invoices/route.ts b/app/api/invoices/route.ts index 5a24ed15..8e2512e6 100644 --- a/app/api/invoices/route.ts +++ b/app/api/invoices/route.ts @@ -166,12 +166,12 @@ export async function POST(request: Request) { let invoiceNumber: string if (documentType === 'delivery_note') { const { data: dnNumber } = await supabase.rpc('generate_delivery_note_number', { - p_user_id: user.id, + p_company_id: companyId, }) invoiceNumber = dnNumber } else { const { data: baseNumber } = await supabase.rpc('generate_invoice_number', { - p_user_id: user.id, + p_company_id: companyId, }) invoiceNumber = documentType === 'proforma' ? `PF-${baseNumber}` diff --git a/app/api/pending-operations/[id]/commit/route.ts b/app/api/pending-operations/[id]/commit/route.ts index 32fbeee8..1ada2794 100644 --- a/app/api/pending-operations/[id]/commit/route.ts +++ b/app/api/pending-operations/[id]/commit/route.ts @@ -340,7 +340,7 @@ async function commitCreateInvoice( // Generate invoice number const { data: invoiceNumber } = await supabase.rpc('generate_invoice_number', { - p_user_id: userId, + p_company_id: companyId, }) // Create invoice diff --git a/app/api/sandbox/seed/route.ts b/app/api/sandbox/seed/route.ts index e643c923..cab84bdf 100644 --- a/app/api/sandbox/seed/route.ts +++ b/app/api/sandbox/seed/route.ts @@ -73,7 +73,7 @@ export async function POST() { // 3. Seed chart of accounts via RPC const { error: coaError } = await supabase.rpc('seed_chart_of_accounts', { - p_user_id: userId, + p_company_id: companyId, p_entity_type: 'enskild_firma', }) if (coaError) throw coaError @@ -294,7 +294,7 @@ export async function POST() { // 9. Create journal entries (inserted directly, not via engine, to avoid event emission) const { data: voucherNum1 } = await supabase.rpc('next_voucher_number', { - p_user_id: userId, + p_company_id: companyId, p_fiscal_period_id: fiscalPeriod.id, p_series: 'A', }) @@ -320,7 +320,7 @@ export async function POST() { if (je1Error) throw je1Error const { data: voucherNum2 } = await supabase.rpc('next_voucher_number', { - p_user_id: userId, + p_company_id: companyId, p_fiscal_period_id: fiscalPeriod.id, p_series: 'A', }) diff --git a/app/api/supplier-invoices/[id]/credit/route.ts b/app/api/supplier-invoices/[id]/credit/route.ts index bcff6750..4ac2e811 100644 --- a/app/api/supplier-invoices/[id]/credit/route.ts +++ b/app/api/supplier-invoices/[id]/credit/route.ts @@ -44,7 +44,7 @@ export async function POST( // Get next arrival number const { data: arrivalNum } = await supabase - .rpc('get_next_arrival_number', { p_user_id: user.id }) + .rpc('get_next_arrival_number', { p_company_id: companyId }) // Create credit note invoice (negative amounts) const { data: creditNote, error: creditError } = await supabase diff --git a/app/api/supplier-invoices/[id]/mark-paid/route.ts b/app/api/supplier-invoices/[id]/mark-paid/route.ts index 7915c8e3..73ed2009 100644 --- a/app/api/supplier-invoices/[id]/mark-paid/route.ts +++ b/app/api/supplier-invoices/[id]/mark-paid/route.ts @@ -123,6 +123,8 @@ export async function POST( const { error: paymentError } = await supabase .from('supplier_invoice_payments') .insert({ + user_id: user.id, + company_id: companyId, supplier_invoice_id: id, payment_date: paymentDate, amount: paymentAmount, diff --git a/app/api/supplier-invoices/route.ts b/app/api/supplier-invoices/route.ts index bbef5930..9c4f4459 100644 --- a/app/api/supplier-invoices/route.ts +++ b/app/api/supplier-invoices/route.ts @@ -75,7 +75,7 @@ export async function POST(request: Request) { // Get next arrival number const { data: arrivalNum, error: arrivalError } = await supabase - .rpc('get_next_arrival_number', { p_user_id: user.id }) + .rpc('get_next_arrival_number', { p_company_id: companyId }) if (arrivalError) { return NextResponse.json({ error: 'Failed to get arrival number' }, { status: 500 }) diff --git a/extensions/general/ai-categorization/categorizer.ts b/extensions/general/ai-categorization/categorizer.ts index bef81780..509052fe 100644 --- a/extensions/general/ai-categorization/categorizer.ts +++ b/extensions/general/ai-categorization/categorizer.ts @@ -76,6 +76,7 @@ export interface CategorizationSuggestion { export interface TrackingContext { supabase: SupabaseClient userId: string + companyId?: string } export interface CategorizationProvider { @@ -336,7 +337,7 @@ ${transactionList}` inputTokens: message.usage.input_tokens, outputTokens: message.usage.output_tokens, model: this.model, - }) + }, tracking.companyId) } // Extract tool_use block from response diff --git a/extensions/general/ai-chat/chatbot/chain.ts b/extensions/general/ai-chat/chatbot/chain.ts index 6772d672..e6ae608d 100644 --- a/extensions/general/ai-chat/chatbot/chain.ts +++ b/extensions/general/ai-chat/chatbot/chain.ts @@ -36,7 +36,7 @@ export interface ChatResult { export async function generateChatResponse( userMessage: string, conversationHistory: ChatMessage[], - tracking?: { supabase: SupabaseClient; userId: string } + tracking?: { supabase: SupabaseClient; userId: string; companyId?: string } ): Promise { // 1. Retrieve relevant documents const relevantDocs = await retrieveRelevantDocuments(userMessage) @@ -81,7 +81,7 @@ export async function generateChatResponse( inputTokens: response.usage_metadata.input_tokens ?? 0, outputTokens: response.usage_metadata.output_tokens ?? 0, model: CHATBOT_CONFIG.model, - }) + }, tracking.companyId) } // 7. Extract content and sources diff --git a/extensions/general/arcim-migration/lib/migration-orchestrator.ts b/extensions/general/arcim-migration/lib/migration-orchestrator.ts index d158fd04..7f5a05e1 100644 --- a/extensions/general/arcim-migration/lib/migration-orchestrator.ts +++ b/extensions/general/arcim-migration/lib/migration-orchestrator.ts @@ -403,7 +403,7 @@ export async function executeMigration(options: MigrationOptions): Promise .insert({ invoice_id: invoice.id, user_id: invoice.user_id, + company_id: invoice.company_id, reminder_level: reminderLevel, email_to: customer.email })