Untitled

Run Settings
LanguageAssembly
Language Version
Run Command
import 'dart:developer'; import 'package:flutter/material.dart'; import 'package:m80app/components/app_hcservice_loading.dart'; import 'package:m80app/components/dialog_errorterminal.dart'; import 'package:m80app/components/dialog_processing_complete.dart'; import 'package:m80app/services/api_status.dart'; import 'package:m80app/services/grpc/hcservice/hcservice.pb.dart'; import 'package:m80app/services/grpc_apis.dart'; import 'package:m80app/setting/setting.dart'; import 'package:m80app/utils/log_utils.dart'; import 'package:m80app/constants/route_paths_constants.dart' as routes; import 'package:m80app/constants/constants.dart' as constants; import 'package:m80app/utils/parsers.dart'; import 'package:m80app/viewmodels/hcloading_viewmodel.dart'; import 'package:m80app/viewmodels/mainpage_viewmodel.dart'; import 'package:m80app/views/investigationpage/investigation_page.dart'; import 'package:provider/provider.dart'; const OpeningProcessNotOK = 0; const OpeningProcessOK = 1; const MessOpeningProcessOK = 'Opening process carried out: Ok'; const MessOpeningProcessnotOK = 'Opening process carried out: Not OK'; const MessOpeningProcessUnknown = 'Opening process carried out: Unknown status'; class OpenningTestPage extends StatefulWidget { const OpenningTestPage({super.key}); @override State<OpenningTestPage> createState() => _OpenningTestPageState(); } class _OpenningTestPageState extends State<OpenningTestPage> { String StatusMessage = ''; void initState() { super.initState(); timeController.text = constants.DATE_INPUT_FORMATTER.format(DateTime.now()); } void TestingLoading(HCLoadingViewModel hcLoadingViewModel) async { bool isContinueSendFY = true; bool isSendFYOk = false; showDialog( context: context, builder: (BuildContext context) { return LoadHCDialog( viewModel: hcLoadingViewModel, ); }); while (isContinueSendFY) { var dtnow = DateTime.now(); hcLoadingViewModel.addLog( '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute} FY送信'); var req = FYRequestMessage( commandId: "FY", protocol: Setting.m80serviceConfig.hcserviceProtocol, headerDestinationIpAddr: Setting.m80serviceConfig.hcserviceDestIpAddress, headerModelType: Setting.m80serviceConfig.hcserviceDestModeltype, headerEquipmentNumber: Setting.m80serviceConfig.hcserviceDestEquipnum, testModeTransmissionMode: 1, formatInformation: 0, employeeNumber: 0); hcLoadingViewModel.setprocessValue(0.2); var fYRes = await GrpcApis.sendFY(req); bool isRequestFail = false; String errMessage = ''; String displayMessage = ''; if (fYRes is FYResponseMessage) { if (fYRes.err == false) { int processstatus = getByteDataOf(fYRes.dataresponse.sublist(44, 45)).getUint8(0); if (processstatus == OpeningProcessNotOK) { print(MessOpeningProcessOK); displayMessage = MessOpeningProcessnotOK; } else if (processstatus == OpeningProcessOK) { displayMessage = MessOpeningProcessOK; } else { displayMessage = MessOpeningProcessUnknown; } isContinueSendFY = false; isSendFYOk = true; hcLoadingViewModel.addLog( '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute.toString().padLeft(2, '0')} FY受信...AckOK'); } else { isRequestFail = true; hcLoadingViewModel.addLog( '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute.toString().padLeft(2, '0')} FY受信...AckFail'); errMessage = "Request FY via GRPC error : ${fYRes.errMsg}"; } } if (fYRes is Failure) { isRequestFail = true; hcLoadingViewModel.addLog( '${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute.toString().padLeft(2, '0')} FY受信...AckFail'); errMessage = "Request FY via GRPC error : ${fYRes.errorResponse.toString()}"; log("Request FY via GRPC error : ${fYRes.errorResponse.toString()}"); Logger.error( "Request FY via GRPC error : ${fYRes.errorResponse.toString()}"); } setState(() { StatusMessage += "${timeController.text} ${dtnow.hour.toString().padLeft(2, '0')}:${dtnow.minute.toString().padLeft(2, '0')}:${dtnow.second.toString().padLeft(2, '0')} : ${displayMessage}${isRequestFail ? "Error: ${errMessage}" : ''}\n"; }); if (isSendFYOk) { hcLoadingViewModel.setprocessValue(1); await showDialog( barrierDismissible: false, context: context, builder: (BuildContext context) { return ProcessingCompleteDialog( title: 'テストモード確認', contentcomplete: 'テスト開店処理が完了しました。', ); }); } else { isContinueSendFY = await showDialog( barrierDismissible: false, context: context, builder: (BuildContext context) { return ErrorTerminalDialog( title: '終了確認', codeerrorterminal: 'XXXXXX'); }); if (!isContinueSendFY) hcLoadingViewModel.setprocessValue(1); } } } @override Widget build(BuildContext context) { MainPageViewModel mainpageViewModel = context.watch<MainPageViewModel>(); HCLoadingViewModel hcLoadingViewModel = context.watch<HCLoadingViewModel>(); return Column(children: [ const SizedBox( height: 30, ), SizedBox( width: constants.CONTENT_WIDTH, child: Row( mainAxisAlignment: MainAxisAlignment.center, children: [ OutlinedButton( onPressed: () async { TestingLoading(hcLoadingViewModel); }, style: ElevatedButton.styleFrom( backgroundColor: constants.COLOR_YELLOW, foregroundColor: const Color(0xFF28899E), fixedSize: const Size(275, 100), textStyle: constants.TEXT_STYLE, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(37)), ), child: Text('テスト開店')), ], ), ), const SizedBox( height: 20, ), Container( height: 320, color: constants.COLOR_GREY, margin: const EdgeInsets.all(10), padding: const EdgeInsets.all(10), child: Stack(children: [ Column(children: [ Expanded( child: ListView(children: [ Column(children: [ Container( alignment: Alignment.topLeft, child: Text( StatusMessage, style: const TextStyle( fontSize: 18, fontWeight: FontWeight.bold, ), ), ) ]) ])) ]) ])), SizedBox( width: constants.CONTENT_WIDTH, child: Row( mainAxisAlignment: MainAxisAlignment.end, children: [ OutlinedButton( onPressed: () { mainpageViewModel.setcurrentRoute(routes.DailyTotalMenuRoute); mainpageViewModel.settitleList(['日計モード']); }, style: ElevatedButton.styleFrom( backgroundColor: constants.COLOR_YELLOW, foregroundColor: const Color(0xFF28899E), fixedSize: const Size(120, 100), textStyle: constants.TEXT_STYLE, shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(37)), ), child: const Text('戻る')), ], ), ), ]); } }
Editor Settings
Theme
Key bindings
Full width
Lines