import 'dart:convert'; import 'package:flutter/material.dart'; import 'package:http/http.dart' as http; import 'package:intl/intl.dart'; import 'package:siopas/connection/connection.dart'; class DetailPeminjamanBarangPage extends StatefulWidget { final int assetId; const DetailPeminjamanBarangPage({Key? key, required this.assetId}) : super(key: key); @override _DetailPeminjamanBarangPageState createState() => _DetailPeminjamanBarangPageState(); } class _DetailPeminjamanBarangPageState extends State { Map? assetStatusData; String _formatDate(String date) { DateTime parsedDate = DateTime.parse(date); String formattedDate = DateFormat('EEEE, dd MMMM yyyy', 'id_ID').format(parsedDate); return formattedDate; } @override void initState() { super.initState(); _fetchAssetStatusData(); } Future _fetchAssetStatusData() async { try { final response = await http.get( Uri.parse('$baseUrl/asset-status/show/${widget.assetId}'), headers: { 'Content-Type': 'application/json', }, ); if (response.statusCode == 200) { setState(() { assetStatusData = json.decode(response.body)['data']['asset_status']; }); } else { throw Exception('Failed to load data'); } } catch (e) { print('Error fetching data: $e'); } } @override Widget build(BuildContext context) { return Scaffold( backgroundColor: Colors.grey[200], appBar: AppBar( backgroundColor: Colors.indigo[700], elevation: 0, title: Text('Detail Peminjaman Barang', style: TextStyle( color: Colors.white, fontSize: 16, )), leading: IconButton( icon: Icon(Icons.arrow_back, color: Colors.white), onPressed: () { Navigator.pushNamed(context, '/peminjaman-barang'); }, ), ), body: Padding( padding: EdgeInsets.all(16.0), child: Card( shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(15.0), ), elevation: 5, child: Column( children: [ Card( shape: RoundedRectangleBorder( borderRadius: BorderRadius.vertical(top: Radius.circular(15.0)), ), elevation: 0, margin: EdgeInsets.all(0), color: Colors.indigo[700], child: Padding( padding: const EdgeInsets.all(16.0), child: Row( children: [ Icon(Icons.article, size: 40, color: Colors.white), // Ganti ikon sesuai kebutuhan SizedBox(width: 10), Text( 'ID: ${widget.assetId}', style: TextStyle( fontSize: 20, fontWeight: FontWeight.bold, color: Colors.white, ), ), ], ), ), ), SizedBox(height: 10), if (assetStatusData != null) ...[ _buildDetailItem( 'Asset Name', assetStatusData!['asset']['name']), Divider(thickness: 1), _buildDetailItem( 'Exit At', _formatDate(assetStatusData!['exit_at'])), Divider(thickness: 1), _buildDetailItem('Exit Pic', assetStatusData!['exit_pic']), Divider(thickness: 1), _buildDetailItem( 'Exit Warehouse', assetStatusData!['warehouse']['name']), // ... tambahkan data lainnya sesuai kebutuhan ], ], ), ), ), ); } Widget _buildDetailItem(String label, String value) { return Padding( padding: const EdgeInsets.symmetric(vertical: 8.0, horizontal: 16.0), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( label, style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold), ), Text(value), ], ), ); } }