import 'package:flutter/material.dart'; import '../services/dio_client.dart'; import '../services/invoice_service.dart'; class InvoiceInstallmentScreen extends StatefulWidget { final int invoiceId; const InvoiceInstallmentScreen({super.key, required this.invoiceId}); @override State createState() => _InvoiceInstallmentScreenState(); } class _InvoiceInstallmentScreenState extends State { bool loading = true; List installments = []; @override void initState() { super.initState(); load(); } Future load() async { final service = InvoiceService(DioClient.getInstance(context)); final res = await service.getInstallments(widget.invoiceId); if (res['success'] == true) { installments = res['installments'] ?? []; } loading = false; setState(() {}); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar(title: const Text("Installments")), body: loading ? const Center(child: CircularProgressIndicator()) : installments.isEmpty ? const Center( child: Text("Installments not created yet", style: TextStyle(fontSize: 18)), ) : ListView.builder( padding: const EdgeInsets.all(16), itemCount: installments.length, itemBuilder: (_, i) { final inst = installments[i]; return Card( child: ListTile( title: Text( "Amount: ₹${inst['amount']?.toString() ?? '0'}"), subtitle: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( "Date: ${inst['installment_date'] ?? 'N/A'}"), Text( "Payment: ${inst['payment_method'] ?? 'N/A'}"), Text( "Reference: ${inst['reference_no'] ?? 'N/A'}"), ], ), ), ); }, ), ); } }