revisi + request v 1.01 -> 1.02

This commit is contained in:
Sas Andy
2024-12-23 08:17:16 +07:00
parent e3073d9823
commit c0e21811c0
13 changed files with 387 additions and 10 deletions

View File

@@ -4,14 +4,17 @@ import 'dart:ui';
import 'package:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
import 'package:flutter_typeahead/flutter_typeahead.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:mitra_corporate/model/auth_model.dart';
import 'package:mitra_corporate/model/registration_model.dart';
import 'package:mitra_corporate/model/test_model.dart';
import 'package:mitra_corporate/model/user_mou_model.dart';
import 'package:mitra_corporate/provider/auth_provider.dart';
import 'package:mitra_corporate/provider/order_provider.dart';
import 'package:mitra_corporate/screen/registrasi/registrasi_prvider.dart';
import 'package:loading_animation_widget/loading_animation_widget.dart';
import 'package:mitra_corporate/screen/registrasi/user_mou_provider.dart';
import 'package:scroll_to_index/scroll_to_index.dart';
import '../../app/constant.dart';
@@ -29,6 +32,7 @@ class FormEditPemeriksaan extends HookConsumerWidget {
final selectedtest = ref.watch(selectedTestEditProvider);
final selectedPacket = ref.watch(selectedPacketEditProvider);
final selectedPacketOld = ref.watch(currentPacketProvider);
final selectedMou = ref.watch(selectedMouProvider);
// inisialisasi baca provider idTipePeriksaStateProvider
final selectedTab = ref.watch(idTipePeriksaStateProvider);
final AuthModel auth = ref.watch(authProvider) ?? AuthModel();
@@ -37,17 +41,31 @@ class FormEditPemeriksaan extends HookConsumerWidget {
final searchCtr = useTextEditingController(text: "");
final scrollCtr = useScrollController();
final ctr = useState(AutoScrollController());
final listUserMou = useState<List<UserMouModel>>(List.empty());
final userMouCtr = useTextEditingController(text: "");
//get pemeriksaan from api
getPemeriksaan() {
getPemeriksaan(String mouID) {
ref
.read(GetFPPProvider.notifier)
.getData(mouID: auth.mUserMMouID ?? "0", token: auth.token ?? "0");
.getData(mouID: mouID, token: auth.token ?? "0");
}
//get pemeriksaan from api
getUserMou() {
ref
.read(GetUserMouProvider.notifier)
.getData(userID: auth.mUserID ?? "0", token: auth.token ?? "0");
}
useEffect(() {
WidgetsBinding.instance.addPostFrameCallback((timeStamp) async {
getPemeriksaan();
// getPemeriksaan();
getUserMou();
if (selectedMou.userMouID != "0" && selectedMou.userMouID != null) {
getPemeriksaan(selectedMou.userMouMouID ?? "0");
userMouCtr.text = selectedMou.userMouName ?? "";
}
});
return () {};
}, []);
@@ -87,6 +105,29 @@ class FormEditPemeriksaan extends HookConsumerWidget {
},
);
ref.listen(
GetUserMouProvider,
(pref, next) {
if (next is GetUserMouStateInit) {
testLoading.value = true;
} else if (next is GetUserMouStateLoading) {
testLoading.value = true;
} else if (next is GetUserMouStateError) {
testLoading.value = false;
print(next.message);
SanckbarWidget(context, next.message, snackbarType.error);
Constant.autoLogout(context: context, msg: next.message);
} else if (next is GetUserMouStateDone) {
listUserMou.value = next.model;
// ref.read(tempTestListProvider.notifier).state = next.model;
print(listUserMou.value);
// tabController.length
testLoading.value = false;
}
},
);
// searchCtr.addListener(() {
// listTest.value.firstWhere((element) => element.items)
// },);
@@ -96,6 +137,63 @@ class FormEditPemeriksaan extends HookConsumerWidget {
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SizedBox(
width: Constant.getActualX(context: context, x: 500),
child: TypeAheadField(
builder: (context, controller, focusNode) {
return TextField(
controller: controller,
focusNode: focusNode,
enabled: !testLoading.value,
// autofocus: true,
decoration: InputDecoration(
hintStyle: Constant.body2_400(context: context),
labelStyle: Constant.body2_400(context: context),
fillColor: Constant.primaryBlue,
labelText: 'Pilih Agreement',
// isCollapsed: true,
hintText: 'Pilih Agreement',
border: OutlineInputBorder(
borderSide: BorderSide(color: Constant.primaryBlue),
borderRadius: BorderRadius.circular(8),
)));
},
controller: userMouCtr,
suggestionsCallback: (pattern) async {
return listUserMou.value
.where(
(element) => element.userMouName!
.toLowerCase()
.contains(pattern.toLowerCase()),
)
.toList();
},
itemBuilder: (BuildContext context, UserMouModel value) {
return ListTile(
title: Text(value.userMouName ?? ""),
);
},
onSelected: (UserMouModel value) {
print(selectedtest);
print(selectedPacket);
// if (selectedtest.isNotEmpty || selectedPacket.isNotEmpty) {
// SanckbarWidget(
// context,
// "test dan paket yang sudah dipilih telah di reset",
// snackbarType.warning);
// }
ref.read(selectedTestEditProvider.notifier).state = List.empty();
ref.read(selectedPacketEditProvider.notifier).state =
List.empty();
ref.read(selectedMouProvider.notifier).state = value;
userMouCtr.text = value.userMouName ?? "";
getPemeriksaan(value.userMouMouID ?? "0");
},
),
),
SizedBox(height: Constant.getActualY(context: context, y: 12)),
SizedBox(
width: Constant.getActualX(context: context, x: 500),
// height: Constant.getActualY(context: context, y: 56),

View File

@@ -8,6 +8,7 @@ import 'package:intl/intl.dart';
import 'package:mitra_corporate/model/registration_model.dart';
import 'package:mitra_corporate/model/test_model.dart';
import 'package:mitra_corporate/model/user_mou_model.dart';
import 'package:mitra_corporate/provider/auth_provider.dart';
import 'package:mitra_corporate/provider/order_provider.dart';
import 'package:mitra_corporate/provider/registrasi_provider.dart';
@@ -31,6 +32,7 @@ class DetailEdit extends HookConsumerWidget {
final testListAll = ref.read(tempTestListProvider);
final selectedTest = ref.read(selectedTestEditProvider);
final dialogAction = ref.watch(dialogOrderActionProvider);
final selectedMou = ref.watch(selectedMouProvider);
final testList = useState<List<Items>>(List.empty());
final testScrollCtr = useScrollController();
@@ -446,6 +448,7 @@ class DetailEdit extends HookConsumerWidget {
}
editOrder() {
tempRegistrationData.userMouID = selectedMou.userMouMouID;
print(jsonEncode(tempRegistrationData));
// tempRegistrationData.tests!.forEach((element) {
// if (element.date == null || element.date!.isEmpty) {
@@ -497,6 +500,7 @@ class DetailEdit extends HookConsumerWidget {
ref.read(currentPacketProvider.notifier).state =
List.empty(growable: true);
ref.read(selectedPacketEditProvider.notifier).state = List.empty();
ref.read(selectedMouProvider.notifier).state = UserMouModel();
}
},
);
@@ -507,7 +511,13 @@ class DetailEdit extends HookConsumerWidget {
// height: MediaQuery.of(context).size.height,
color: Colors.white,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
"Agreement : ${selectedMou.userMouName}",
style: Constant.h4_600(context: context),
),
SizedBox(height: Constant.getActualY(context: context, y: 24)),
Row(
children: [
SizedBox(

View File

@@ -6,6 +6,7 @@ import 'package:intl/intl.dart';
import 'package:mitra_corporate/model/registration_model.dart';
import 'package:mitra_corporate/model/search_order_model.dart';
import 'package:mitra_corporate/model/test_model.dart';
import 'package:mitra_corporate/model/user_mou_model.dart';
import 'package:mitra_corporate/provider/order_provider.dart';
import 'package:mitra_corporate/screen/order/cancel_order_provider.dart';
import 'package:mitra_corporate/screen/order/dialog_cancel_order.dart';
@@ -872,6 +873,7 @@ class OrderScreen extends HookConsumerWidget {
pekerjaan: e.value.pekerjaan,
));
ref.read(EditDataProvider.notifier).state = a;
ref.read(selectedMouProvider.notifier).state = e.value.mou ?? UserMouModel();
showDialog(context: context, barrierDismissible: false, builder: ((context) => DialogEdit())).then((value) => refresh());
},
icon: Icon(