sucursal_screen.dart 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import 'package:flutter/material.dart';
  2. import 'package:provider/provider.dart';
  3. import '../../viewmodels/viewmodels.dart';
  4. import '../../models/models.dart';
  5. import '../../widgets/widgets.dart';
  6. class SucursalesPage extends StatefulWidget {
  7. @override
  8. _SucursalesPageState createState() => _SucursalesPageState();
  9. }
  10. class _SucursalesPageState extends State<SucursalesPage> {
  11. Sucursal? _selectedSucursal;
  12. @override
  13. void initState() {
  14. super.initState();
  15. // Cargar las sucursales desde la base de datos local cuando se inicializa la pantalla
  16. Provider.of<SucursalViewModel>(context, listen: false)
  17. .fetchLocalSucursales();
  18. }
  19. @override
  20. Widget build(BuildContext context) {
  21. final sucursalViewModel = Provider.of<SucursalViewModel>(context);
  22. final sucursales = sucursalViewModel.sucursales;
  23. return Scaffold(
  24. appBar: AppBar(
  25. title: Text('Sucursales'),
  26. ),
  27. body: Padding(
  28. padding: const EdgeInsets.all(16.0),
  29. child: Column(
  30. crossAxisAlignment: CrossAxisAlignment.stretch,
  31. children: [
  32. // Dropdown para seleccionar una sucursal
  33. DropdownButton<Sucursal>(
  34. hint: Text('Seleccione una sucursal'),
  35. value: _selectedSucursal,
  36. isExpanded: true,
  37. onChanged: (Sucursal? newValue) {
  38. setState(() {
  39. _selectedSucursal = newValue;
  40. });
  41. },
  42. items: sucursales.map((Sucursal sucursal) {
  43. return DropdownMenuItem<Sucursal>(
  44. value: sucursal,
  45. child: Text(sucursal.nombre ?? ''),
  46. );
  47. }).toList(),
  48. ),
  49. SizedBox(height: 20),
  50. boton("Guardar", () async {
  51. _guardarSucursalSeleccionada();
  52. if (context.mounted) {
  53. Navigator.pop(context);
  54. }
  55. })
  56. ],
  57. ),
  58. ),
  59. );
  60. }
  61. void _guardarSucursalSeleccionada() {
  62. if (_selectedSucursal != null) {
  63. // Aquí puedes implementar la lógica para guardar la sucursal seleccionada
  64. print('Sucursal seleccionada: ${_selectedSucursal?.nombre}');
  65. // Puedes guardar la sucursal seleccionada en el estado o base de datos local
  66. // Ejemplo: Provider.of<SucursalViewModel>(context, listen: false).guardarSucursalSeleccionada(_selectedSucursal);
  67. }
  68. }
  69. }