import 'dart:async'; import 'dart:convert'; import 'dart:typed_data'; import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/model/pharmacies/LacumAccountInformation.dart'; import 'package:diplomaticquarterapp/core/service/parmacyModule/lacum-service.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import '../../../locator.dart'; import '../base_view_model.dart'; class LacumViewModel extends BaseViewModel { LacumService _lacumService = locator(); LacumAccountInformation get lacumInformation => _lacumService.lacumInformation; LacumAccountInformation get lacumGroupInformation => _lacumService.lacumGroupInformation; String get successMsg => _lacumService.successMsg; Future getLacumData(String identificationNo) async { await getLacumAccountData(identificationNo); getLacumGroupData(identificationNo); } Future getLacumAccountData(String identificationNo) async { setState(ViewState.Busy); await _lacumService.getLacumAccountInformation(identificationNo); if (_lacumService.hasError) { error = _lacumService.error; setState(ViewState.Error); } else { setState(ViewState.Idle); } } Future getLacumGroupData(String identificationNo) async { setState(ViewState.Busy); await _lacumService.getLacumGroupInformation(identificationNo); if (_lacumService.hasError) { error = _lacumService.error; setState(ViewState.Error); } else { setState(ViewState.Idle); } } Future makeAccountActivate(String identificationNo) async { setState(ViewState.Busy); await _lacumService.makeAccountActivate(); if (_lacumService.hasError) { error = _lacumService.error; setState(ViewState.Error); } else { lacumGroupInformation.lakumInquiryInformationObjVersion.accountStatus = "Active"; getLacumAccountData(identificationNo); } } Future makeAccountDeactivate(String identificationNo) async { setState(ViewState.Busy); await _lacumService.makeAccountDeactivate(); if (_lacumService.hasError) { error = _lacumService.error; setState(ViewState.Error); } else { lacumGroupInformation.lakumInquiryInformationObjVersion.accountStatus = "Cancelled"; getLacumAccountData(identificationNo); } } Future createLakumAccount(String name, String phone) async { setState(ViewState.BusyLocal); await _lacumService.createLakumAccount(name, phone, lacumInformation.yahalaAccountNo, lacumInformation.identificationNo, null); if (_lacumService.hasError) { error = _lacumService.error; setState(ViewState.ErrorLocal); } else { setState(ViewState.Idle); } } String formatCreatedDateToString() { DateTime createdDate = DateUtil.convertStringToDate( lacumGroupInformation.lakumInquiryInformationObjVersion.createdDate); return DateUtil.getFormattedDate(createdDate, "MMM dd,yyyy"); } Uint8List convertBase64ToBarCodeImage() { try { final _byteImage = base64Decode( lacumGroupInformation.lakumInquiryInformationObjVersion.barCode.split(',').last); return _byteImage; } catch (e) { print(e); return null; } } setLakumData(LacumAccountInformation lacumInformation, LacumAccountInformation lacumGroupInformation){ _lacumService.lacumInformation = lacumInformation; _lacumService.lacumGroupInformation = lacumGroupInformation; } clearLakumGroupData(){ _lacumService.lacumGroupInformation = null; } }