123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- import 'package:computo_lite/views/package/package_page.dart';
- import 'package:flutter/material.dart';
- import 'package:computo_lite/widgets/widgets.dart';
- import 'package:provider/provider.dart';
- import '../../viewmodels/viewmodels.dart';
- class HomeScreen extends StatefulWidget {
- const HomeScreen({super.key});
- @override
- Formulario createState() => Formulario();
- }
- class Formulario extends State<HomeScreen> {
- @override
- void initState() {
- super.initState();
- Future(() async {
- await Provider.of<LoginViewModel>(context, listen: false).setValores();
- });
- }
- final PackageViewModel _packageViewModel = PackageViewModel();
- bool _loading = false;
- Future<void> _scanner() async {
- try {
- if (_loading) return;
- if (mounted) setState(() => _loading = true);
- Widget header = Row(
- children: [
- Icon(Icons.error),
- SizedBox(width: 5),
- Text("Aviso"),
- ],
- );
- Map<String, dynamic>? response = await _packageViewModel.scanner("");
- if (response == null ||
- response["resultado"] == null ||
- List.from(response["resultado"]).length == 0) {
- if (mounted) setState(() => _loading = false);
- await HelpersViewModel.dialog(
- 2,
- header,
- "No se encontro el Acta-Paquete, intenelo de nuevo.",
- context,
- "Cerrar",
- "Reintentar",
- () {}, () async {
- await _scanner();
- });
- return;
- }
- Map<String, dynamic>? binnacle = await _packageViewModel
- .getBinnacle(response["resultado"][0]["idActa"]);
- Navigator.push(
- context,
- MaterialPageRoute(
- builder: (context) => PackagePage(
- response["resultado"][0],
- binnacle != null
- ? List<Map<String, dynamic>>.from(binnacle["resultado"])
- .map((e) => ({
- "entradaSalida": e["entradaSalida"],
- "fecha": e["fecha"],
- "motivo": e["motivoPaquete"]["descripcion"]
- }))
- .toList()
- : [],
- response["resultado"][0]["ultimaBitacora"] != null
- ? response["resultado"][0]["ultimaBitacora"]
- ["entradaSalida"]
- : "E",
- true,
- response["resultado"][0]["ultimaBitacora"] != null
- ? response["resultado"][0]["ultimaBitacora"]
- ["idConsejoElectoral"]
- : 0,
- response["resultado"][0]["idTipoEleccion"])),
- );
- } catch (e) {
- print(e);
- } finally {
- if (mounted) setState(() => _loading = false);
- }
- }
- @override
- Widget build(BuildContext context) {
- String correo = Provider.of<LoginViewModel>(context).correo;
- return Scaffold(
- backgroundColor: Colors.grey.shade200,
- appBar: AppBar(
- elevation: 0,
- title: const Text(
- 'Inicio',
- style: TextStyle(color: Colors.white),
- ),
- iconTheme: const IconThemeData(color: Colors.white),
- actions: [usuarioHeader(correo)],
- ),
- drawer: AppDrawer(),
- body: Column(children: [
- const SizedBox(height: 150),
- Center(
- child: Image.asset(
- "assets/Elecciones2024.png",
- height: 150,
- )),
- const SizedBox(height: 100),
- Center(
- child: GestureDetector(
- onTap: _scanner,
- child: CircleAvatar(
- radius: 100,
- child: _loading
- ? CircularProgressIndicator(
- valueColor:
- new AlwaysStoppedAnimation<Color>(Colors.white),
- )
- : const Icon(
- Icons.camera_alt,
- size: 100,
- )),
- )),
- ]),
- );
- }
- }
|