import 'package:flutter/material.dart'; import 'package:invent_app/model/general.dart'; import '../general/constantes.dart'; class Clase1Sc extends StatefulWidget { int _uno_; // es hijo int _uno_; Clase1Sc({Key key, @required this._uno_, @required this._uno_}) : super(key: key); @override _clase2State createState() => _clase2(); } /// class _clase2State extends State { bool _enProceso = false; algoCrl control = new AlgoCrl(); // el control int _nuevo = 1; bool _autoValidar = false; final _formaKey = GlobalKey(); /* generados bool _interno; int _claTipoProveedor; int _claEstado; int _claBanco; int _iva; final TextEditingController _nomProveedorCtrl = new TextEditingController(); */ @override void initState() { /* generados //inicia los bool de la forma */ _datosIniciales(); super.initState(); } @override void dispose() { super.dispose(); } @override Widget build(BuildContext context) { return Scaffold( appBar: barra(), body: SafeArea( child: Stack( fit: StackFit.expand, children: [ forma(context), Visibility(visible: _enProceso, child: progreso(),), ], ) ), ); } /// Widget barra(){ String titulo = _nuevo == 1 ? general.n('Nueva que') : general.n('Modificar que'); return AppBar( title: Text(titulo, style: TextStyle(fontWeight: FontWeight.normal, fontSize: 17.0) ), brightness: Brightness.dark, leading: IconButton( icon: Icon(Icons.arrow_back, color: Colors.white), onPressed: () => Navigator.of(context).pop(), ), actions: [ Visibility( visible: general.hasCredencial('cual'), child: TextButton( style: TextButton.styleFrom( primary: Colors.white, backgroundColor: iaColor1, onSurface: Colors.grey ), onPressed: _validar, child: Text(general.n('Guardar'), style: TextStyle( fontWeight: FontWeight.normal, fontSize: 15.0, fontStyle: FontStyle.italic) ), ), ), ], ); } /// Widget forma(context){ return Container( color: Colors.white, margin: EdgeInsets.all(8.0), padding: EdgeInsets.all(8.0), child: SingleChildScrollView( child: Form( key: _formaKey, autovalidateMode: _autoValidadando(), child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start, children: [ /* generados txtNomProveedor(), */ ], ) ) ) ); } /// AutovalidateMode _autoValidadando(){ if(_autoValidar){ return AutovalidateMode.always; } if(!_autoValidar){ return AutovalidateMode.disabled; } return AutovalidateMode.onUserInteraction; } /// Widget progreso() { return Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisSize: MainAxisSize.max, mainAxisAlignment: MainAxisAlignment.center, children: [ Container(child: CircularProgressIndicator()), ], ); } /* generados WIDGETS */ /// _validar(){ if(_enProceso){ return; } FocusScope.of(context).unfocus(); if (_formaKey.currentState.validate()) { _guardar(); }else{ setState(() { _autoValidar = true; }); ScaffoldMessenger.of(context).showSnackBar( SnackBar(content: Text(general.n('Datos no vĂ¡lidos'),), backgroundColor: iaColor1, ) ); } } /// _guardar() async{ setState(() { _enProceso = true; }); String url = general.servidor + '/modulo_app/sendUNO'; var parametros = { 'claInvent': general.claInvent, 'nuevo': _nuevo.toString(), /* generados 'claProveedor': widget.claProveedor.toString(), 'nomProveedor': _nomProveedorCtrl.text, */ }; Map datos = await API.post(url, parametros, debug: false); // print(datos); int idRespuesta = datos['idRespuesta'] + 0; if( idRespuesta == 1 ) { _tres_Model _dirActualizada = new _tres_Model( /*generados claProveedor: datos['data']['claProveedor'] ?? 0, nomProveedor: datos['data']['nomProveedor'] ?? '', */ ); ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text(datos['aviso']), backgroundColor: iaColor1, ) ); Navigator.pop(context, _dirActualizada); }else{ ScaffoldMessenger.of(context).showSnackBar( SnackBar( content: Text(datos['aviso'],), backgroundColor: iaColor1, ) ); } setState(() { _enProceso = false; }); } /// _datosIniciales() async { setState(() => _enProceso = true); if(widget.claDireccion > 0) { var datos = await control.getProveedor(widget.claProveedor); _nuevo = datos['nuevo']; /* generados _nomProveedorCtrl.text = datos['nomProveedor'] ?? ''; */ } setState(() => _enProceso = false); } } // fin clase