|
@@ -17,7 +17,18 @@ class _SucursalesPageState extends State<SucursalesPage> {
|
|
super.initState();
|
|
super.initState();
|
|
// Cargar las sucursales desde la base de datos local cuando se inicializa la pantalla
|
|
// Cargar las sucursales desde la base de datos local cuando se inicializa la pantalla
|
|
Provider.of<SucursalViewModel>(context, listen: false)
|
|
Provider.of<SucursalViewModel>(context, listen: false)
|
|
- .fetchLocalSucursales();
|
|
|
|
|
|
+ .fetchLocalSucursales()
|
|
|
|
+ .then((_) {
|
|
|
|
+ // Buscar la sucursal seleccionada automáticamente al cargar la pantalla
|
|
|
|
+ final sucursales =
|
|
|
|
+ Provider.of<SucursalViewModel>(context, listen: false).sucursales;
|
|
|
|
+ setState(() {
|
|
|
|
+ _selectedSucursal = sucursales.firstWhere(
|
|
|
|
+ (sucursal) => sucursal.seleccionado == 1,
|
|
|
|
+ orElse: () => null as Sucursal,
|
|
|
|
+ );
|
|
|
|
+ });
|
|
|
|
+ });
|
|
}
|
|
}
|
|
|
|
|
|
@override
|
|
@override
|
|
@@ -34,11 +45,11 @@ class _SucursalesPageState extends State<SucursalesPage> {
|
|
child: Column(
|
|
child: Column(
|
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
|
children: [
|
|
children: [
|
|
- // Dropdown para seleccionar una sucursal
|
|
|
|
- DropdownButton<Sucursal>(
|
|
|
|
- hint: Text('Seleccione una sucursal'),
|
|
|
|
- value: _selectedSucursal,
|
|
|
|
- isExpanded: true,
|
|
|
|
|
|
+ // Dropdown para seleccionar una sucursal utilizando AppDropdownModel
|
|
|
|
+ AppDropdownModel<Sucursal>(
|
|
|
|
+ etiqueta: 'Seleccione una sucursal',
|
|
|
|
+ hint: 'Elija una sucursal',
|
|
|
|
+ selectedValue: _selectedSucursal,
|
|
onChanged: (Sucursal? newValue) {
|
|
onChanged: (Sucursal? newValue) {
|
|
setState(() {
|
|
setState(() {
|
|
_selectedSucursal = newValue;
|
|
_selectedSucursal = newValue;
|
|
@@ -47,29 +58,65 @@ class _SucursalesPageState extends State<SucursalesPage> {
|
|
items: sucursales.map((Sucursal sucursal) {
|
|
items: sucursales.map((Sucursal sucursal) {
|
|
return DropdownMenuItem<Sucursal>(
|
|
return DropdownMenuItem<Sucursal>(
|
|
value: sucursal,
|
|
value: sucursal,
|
|
- child: Text(sucursal.nombre ?? ''),
|
|
|
|
|
|
+ child: Text(
|
|
|
|
+ sucursal.nombre ?? '',
|
|
|
|
+ style: TextStyle(color: Colors.black),
|
|
|
|
+ ),
|
|
);
|
|
);
|
|
}).toList(),
|
|
}).toList(),
|
|
),
|
|
),
|
|
SizedBox(height: 20),
|
|
SizedBox(height: 20),
|
|
|
|
+
|
|
|
|
+ // Tarjeta con la información de la sucursal seleccionada
|
|
|
|
+ if (_selectedSucursal != null)
|
|
|
|
+ tarjeta(
|
|
|
|
+ Padding(
|
|
|
|
+ padding: const EdgeInsets.all(8.0),
|
|
|
|
+ child: Column(
|
|
|
|
+ crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
+ children: [
|
|
|
|
+ Text(
|
|
|
|
+ 'Sucursal: ${_selectedSucursal!.nombre ?? ''}',
|
|
|
|
+ style: TextStyle(
|
|
|
|
+ fontSize: 16, fontWeight: FontWeight.bold),
|
|
|
|
+ ),
|
|
|
|
+ SizedBox(height: 5),
|
|
|
|
+ Text('Dirección: ${_selectedSucursal!.direccion ?? ''}'),
|
|
|
|
+ SizedBox(height: 5),
|
|
|
|
+ Text('Ciudad: ${_selectedSucursal!.ciudad ?? ''}'),
|
|
|
|
+ SizedBox(height: 5),
|
|
|
|
+ Text('Clave: ${_selectedSucursal!.clave ?? ''}'),
|
|
|
|
+ SizedBox(height: 5),
|
|
|
|
+ ],
|
|
|
|
+ ),
|
|
|
|
+ ),
|
|
|
|
+ ),
|
|
|
|
+
|
|
|
|
+ SizedBox(height: 20),
|
|
|
|
+
|
|
|
|
+ // Usar el widget de botón para guardar
|
|
boton("Guardar", () async {
|
|
boton("Guardar", () async {
|
|
- _guardarSucursalSeleccionada();
|
|
|
|
|
|
+ await _guardarSucursalSeleccionada();
|
|
if (context.mounted) {
|
|
if (context.mounted) {
|
|
Navigator.pop(context);
|
|
Navigator.pop(context);
|
|
}
|
|
}
|
|
- })
|
|
|
|
|
|
+ }),
|
|
],
|
|
],
|
|
),
|
|
),
|
|
),
|
|
),
|
|
);
|
|
);
|
|
}
|
|
}
|
|
|
|
|
|
- void _guardarSucursalSeleccionada() {
|
|
|
|
|
|
+ Future<void> _guardarSucursalSeleccionada() async {
|
|
if (_selectedSucursal != null) {
|
|
if (_selectedSucursal != null) {
|
|
- // Aquí puedes implementar la lógica para guardar la sucursal seleccionada
|
|
|
|
- print('Sucursal seleccionada: ${_selectedSucursal?.nombre}');
|
|
|
|
- // Puedes guardar la sucursal seleccionada en el estado o base de datos local
|
|
|
|
- // Ejemplo: Provider.of<SucursalViewModel>(context, listen: false).guardarSucursalSeleccionada(_selectedSucursal);
|
|
|
|
|
|
+ // Guardar la sucursal seleccionada utilizando el ViewModel
|
|
|
|
+ await Provider.of<SucursalViewModel>(context, listen: false)
|
|
|
|
+ .setSelectedSucursal(_selectedSucursal!);
|
|
|
|
+
|
|
|
|
+ setState(() {
|
|
|
|
+ // Volver a establecer la sucursal seleccionada en el Dropdown
|
|
|
|
+ _selectedSucursal = _selectedSucursal;
|
|
|
|
+ });
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|