Merge branch 'master' into moe-sikander

# Conflicts:
#	lib/ui/screens/my_requests/my_requests.dart
moe-sikander
Sikander Saleem 3 years ago
commit 31c49fbeec

@ -60,13 +60,12 @@ class MyRequestsApiClient {
}, url, postParams);
}
Future<SubmitCcpTransactionList?> getSubmitNewRequest(List<Map<String, dynamic>> list) async
{
Future<SubmitCcpTransactionList?> getSubmitNewRequest(List<Map<String, dynamic>> list, {String? functionName}) async {
String url = "${ApiConsts.erpRest}SUBMIT_CCP_TRANSACTION";
Map<String, dynamic> postParams = {
"P_MENU_TYPE": "E",
"P_SELECTED_RESP_ID": -999,
"P_DESC_FLEX_NAME": "HMG_EMP_BUS_TRIP_SET_SS",
"P_DESC_FLEX_NAME": functionName ?? "HMG_EMP_BUS_TRIP_SET_SS",
};
postParams.addAll(AppState().postParamsJson);
@ -77,13 +76,12 @@ class MyRequestsApiClient {
}, url, postParams);
}
Future<List<GetCCPTransactionsModel>> getCcpTransactions(List<Map<String, dynamic>> list) async
{
Future<List<GetCCPTransactionsModel>> getCcpTransactions(List<Map<String, dynamic>> list, {String? functionName}) async {
String url = "${ApiConsts.erpRest}GET_CCP_TRANSACTIONS";
Map<String, dynamic> postParams = {
"P_MENU_TYPE": "E",
"P_SELECTED_RESP_ID": -999,
"P_DESC_FLEX_NAME": "HMG_EMP_BUS_TRIP_SET_SS",
"P_DESC_FLEX_NAME": functionName ?? "HMG_EMP_BUS_TRIP_SET_SS",
};
postParams.addAll(AppState().postParamsJson);
@ -93,5 +91,4 @@ class MyRequestsApiClient {
return responseData.getCCPTransactionsModel ?? [];
}, url, postParams);
}
}

@ -10,6 +10,9 @@ import 'package:mohem_flutter_app/models/post_params_model.dart';
import 'package:mohem_flutter_app/models/privilege_list_model.dart';
import 'package:mohem_flutter_app/models/worklist_response_model.dart';
class AppState {
static final AppState _instance = AppState._internal();
@ -88,7 +91,7 @@ class AppState {
String get getHuaweiPushToken => _huaweiPushToken;
final PostParamsModel _postParamsInitConfig = PostParamsModel(channel: 31, versionID: 4.1, mobileType: Platform.isAndroid ? "android" : "ios");
final PostParamsModel _postParamsInitConfig = PostParamsModel(channel: 31, versionID: 6.1, mobileType: Platform.isAndroid ? "android" : "ios");
void setPostParamsInitConfig() {
isAuthenticated = false;

@ -652,3 +652,5 @@ class _DashboardScreenState extends State<DashboardScreen> with WidgetsBindingOb
Navigator.pushNamed(context, AppRoutes.offersAndDiscountsDetails, arguments: getOffersDetailList);
}
}

@ -9,6 +9,7 @@ import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart';
import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart';
import 'package:mohem_flutter_app/ui/screens/my_requests/new_request.dart';
import 'package:mohem_flutter_app/widgets/shimmer/dashboard_shimmer_widget.dart';
import 'package:provider/provider.dart';
@ -192,7 +193,7 @@ class MenusWidget extends StatelessWidget {
).paddingOnly(left: 10, right: 10, bottom: 6, top: 6),
).onPress(
() {
Navigator.pushNamed(context, AppRoutes.myRequests,arguments: data.myRequest!.requestGroupId);
Navigator.pushNamed(context, AppRoutes.myRequests, arguments: NewRequestModel(groupID: data.myRequest!.requestGroupId));
},
)
],

@ -13,6 +13,7 @@ import 'package:mohem_flutter_app/models/dashboard/menu_entries.dart';
import 'package:mohem_flutter_app/provider/dashboard_provider_model.dart';
import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart';
import 'package:mohem_flutter_app/ui/my_attendance/services_menu_list_screen.dart';
import 'package:mohem_flutter_app/ui/screens/my_requests/new_request.dart';
import 'package:mohem_flutter_app/widgets/shimmer/dashboard_shimmer_widget.dart';
import 'package:provider/provider.dart';
@ -72,7 +73,7 @@ class ServicesWidget extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Image.memory(
Base64Decoder().convert(data.homeMenus![parentIndex].menuEntiesList[index].icon ?? ""),
const Base64Decoder().convert(data.homeMenus![parentIndex].menuEntiesList[index].icon ?? ""),
scale: 1.25,
),
Row(
@ -91,13 +92,13 @@ class ServicesWidget extends StatelessWidget {
}),
);
},
separatorBuilder: (cxt, index) => 9.width,
separatorBuilder: (BuildContext cxt, int index) => 9.width,
itemCount: data.homeMenus![parentIndex].menuEntiesList.length),
),
],
);
},
separatorBuilder: (context, index) {
separatorBuilder: (BuildContext context, int index) {
return 12.height;
},
shrinkWrap: true,
@ -194,8 +195,25 @@ class ServicesWidget extends StatelessWidget {
}
void handleOnPress(context, GetMenuEntriesList menuEntry) {
print(menuEntry.requestType);
var pro = Provider.of<DashboardProviderModel>(context, listen: false);
if (menuEntry.requestType == "MONTHLY_ATTENDANCE") {
// if (menuEntry.requestType == "PMS") {
// Navigator.pushNamed(context, AppRoutes.newRequest, arguments: NewRequestModel(functionName: menuEntry.functionName, prompt: menuEntry.prompt));
// } else
if (menuEntry.requestType == "CCP") {
Navigator.pushNamed(context, AppRoutes.newRequest, arguments: NewRequestModel(functionName: menuEntry.functionName, prompt: menuEntry.prompt));
} else if (menuEntry.requestType == "PAR") {
Navigator.pushNamed(context, AppRoutes.performanceEvaluation);
} else if (menuEntry.requestType == "BASIC_DETAILS") {
Navigator.pushNamed(context, AppRoutes.basicDetails);
return;
} else if (menuEntry.requestType == "PHONE_NUMBERS") {
Navigator.pushNamed(context, AppRoutes.contactDetails);
return;
} else if (menuEntry.requestType == "ADDRESS") {
Navigator.pushNamed(context, AppRoutes.contactDetails);
return;
} else if (menuEntry.requestType == "MONTHLY_ATTENDANCE") {
Navigator.pushNamed(context, AppRoutes.monthlyAttendance);
return;
} else if (menuEntry.requestType == "VACATION_RULE") {
@ -246,13 +264,13 @@ class ServicesWidget extends StatelessWidget {
physics: const BouncingScrollPhysics(),
padding: const EdgeInsets.only(left: 21, right: 21, top: 13, bottom: 13),
scrollDirection: Axis.horizontal,
itemBuilder: (cxt, index) {
itemBuilder: (BuildContext cxt, int index) {
return AspectRatio(
aspectRatio: 105 / 105,
child: ServicesMenuShimmer(),
);
},
separatorBuilder: (cxt, index) => 9.width,
separatorBuilder: (BuildContext cxt, int index) => 9.width,
itemCount: 4,
),
),
@ -260,3 +278,5 @@ class ServicesWidget extends StatelessWidget {
);
}
}

@ -16,6 +16,7 @@ import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/my_requests/get_ccp_output_model.dart';
import 'package:mohem_flutter_app/models/my_requests/get_ccp_transactions_model.dart';
import 'package:mohem_flutter_app/models/my_requests/get_concurrent_programs_model.dart';
import 'package:mohem_flutter_app/ui/screens/my_requests/new_request.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
import 'package:mohem_flutter_app/widgets/dynamic_forms/dynamic_textfield_widget.dart';
@ -33,7 +34,7 @@ class _MyRequestsState extends State<MyRequests> {
List<GetCCPTransactionsModel> getCCPTransactionsList = [];
int? groupId;
NewRequestModel? requestModel;
bool isNewRequest = false;
@override
@ -43,9 +44,13 @@ class _MyRequestsState extends State<MyRequests> {
@override
Widget build(BuildContext context) {
if (groupId == null) {
groupId = ModalRoute.of(context)!.settings.arguments as int;
getConcurrentPrograms();
if (requestModel == null) {
requestModel = ModalRoute.of(context)!.settings.arguments as NewRequestModel;
if (requestModel!.groupID != null) {
getConcurrentPrograms();
} else {
getCCPTransactions(requestModel!.functionName);
}
}
return Scaffold(
@ -65,17 +70,17 @@ class _MyRequestsState extends State<MyRequests> {
child: PopupMenuButton(
child: DynamicTextFieldWidget(
LocaleKeys.templateName.tr(),
selectedConcurrentProgramList?.uSERCONCURRENTPROGRAMNAME ?? LocaleKeys.selectTemplate.tr(),
selectedConcurrentProgramList?.uSERCONCURRENTPROGRAMNAME ?? requestModel?.prompt ?? LocaleKeys.selectTemplate.tr(),
isEnable: false,
isPopup: true,
isInputTypeNum: true,
isReadOnly: false,
isReadOnly: getConcurrentProgramsList.isEmpty ? true : false,
).paddingOnly(bottom: 12),
itemBuilder: (_) => <PopupMenuItem<int>>[
for (int i = 0; i < getConcurrentProgramsList!.length; i++) PopupMenuItem<int>(child: Text(getConcurrentProgramsList![i].uSERCONCURRENTPROGRAMNAME!), value: i),
for (int i = 0; i < getConcurrentProgramsList.length; i++) PopupMenuItem<int>(child: Text(getConcurrentProgramsList![i].uSERCONCURRENTPROGRAMNAME!), value: i),
],
onSelected: (int popupIndex) {
selectedConcurrentProgramList = getConcurrentProgramsList![popupIndex];
selectedConcurrentProgramList = getConcurrentProgramsList[popupIndex];
getCCPTransactions(selectedConcurrentProgramList?.cONCURRENTPROGRAMNAME);
setState(() {});
}),
@ -159,7 +164,7 @@ class _MyRequestsState extends State<MyRequests> {
}
void openNewRequest() async {
await Navigator.pushNamed(context, AppRoutes.newRequest,arguments: groupId).then((value) {
await Navigator.pushNamed(context, AppRoutes.newRequest, arguments: NewRequestModel(groupID: requestModel!.groupID)).then((value) {
// getOpenTickets();
});
}
@ -167,7 +172,7 @@ class _MyRequestsState extends State<MyRequests> {
void getConcurrentPrograms() async {
try {
Utils.showLoading(context);
getConcurrentProgramsList = await MyRequestsApiClient().getConcurrentPrograms(groupId!);
getConcurrentProgramsList = await MyRequestsApiClient().getConcurrentPrograms(requestModel!.groupID!);
Utils.hideLoading(context);
setState(() {});
} catch (ex) {

@ -19,6 +19,14 @@ import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
import 'package:mohem_flutter_app/widgets/dynamic_forms/dynamic_textfield_widget.dart';
class NewRequestModel {
int? groupID;
String? functionName;
String? prompt;
NewRequestModel({this.groupID, this.functionName, this.prompt});
}
class NewRequest extends StatefulWidget {
const NewRequest({Key? key}) : super(key: key);
@ -34,7 +42,7 @@ class _NewRequestState extends State<NewRequest> {
List<GetEITDFFStructureList>? getCCPDFFStructureModelList;
DateTime selectedDate = DateTime.now();
int? groupId;
NewRequestModel? requestModel;
@override
void initState() {
@ -43,9 +51,13 @@ class _NewRequestState extends State<NewRequest> {
@override
Widget build(BuildContext context) {
if (groupId == null) {
groupId = ModalRoute.of(context)!.settings.arguments as int;
getConcurrentPrograms();
if (requestModel == null) {
requestModel = ModalRoute.of(context)!.settings.arguments as NewRequestModel;
if (requestModel!.groupID != null) {
getConcurrentPrograms();
} else {
getCCPDFFStructure(requestModel!.functionName);
}
}
return Scaffold(
@ -63,17 +75,17 @@ class _NewRequestState extends State<NewRequest> {
PopupMenuButton(
child: DynamicTextFieldWidget(
LocaleKeys.templateName.tr(),
selectedConcurrentProgramList?.uSERCONCURRENTPROGRAMNAME ?? LocaleKeys.selectTemplate.tr(),
selectedConcurrentProgramList?.uSERCONCURRENTPROGRAMNAME ?? requestModel?.prompt ?? LocaleKeys.selectTemplate.tr(),
isEnable: false,
isPopup: true,
isInputTypeNum: true,
isReadOnly: false,
isReadOnly:getConcurrentProgramsList.isEmpty? true:false,
).paddingOnly(bottom: 12),
itemBuilder: (_) => <PopupMenuItem<int>>[
for (int i = 0; i < getConcurrentProgramsList!.length; i++) PopupMenuItem<int>(child: Text(getConcurrentProgramsList![i].uSERCONCURRENTPROGRAMNAME!), value: i),
for (int i = 0; i < getConcurrentProgramsList.length; i++) PopupMenuItem<int>(child: Text(getConcurrentProgramsList[i].uSERCONCURRENTPROGRAMNAME!), value: i),
],
onSelected: (int popupIndex) {
selectedConcurrentProgramList = getConcurrentProgramsList![popupIndex];
selectedConcurrentProgramList = getConcurrentProgramsList[popupIndex];
getCCPDFFStructure(selectedConcurrentProgramList?.cONCURRENTPROGRAMNAME);
setState(() {});
}),
@ -106,8 +118,11 @@ class _NewRequestState extends State<NewRequest> {
List<Map<String, dynamic>> values = getCCPDFFStructureModelList!.map((e) {
String? dateVal = '';
String? vatcherVal = '';
print(e.aPPLICATIONCOLUMNNAME);
print(e.fORMATTYPE);
print(e.eSERVICESDV!.pIDCOLUMNNAME);
int? numberVal;
if (e!.fORMATTYPE == 'N') {
if (e.fORMATTYPE == 'N') {
dateVal = null;
vatcherVal = e.eSERVICESDV!.pIDCOLUMNNAME;
numberVal = null;
@ -115,6 +130,10 @@ class _NewRequestState extends State<NewRequest> {
dateVal = null;
vatcherVal = e.eSERVICESDV!.pIDCOLUMNNAME;
numberVal = null;
} else if (e.fORMATTYPE == 'C') {
dateVal = null;
numberVal = null;
vatcherVal = e.eSERVICESDV!.pIDCOLUMNNAME;
} else {
dateVal = null;
numberVal = null;
@ -123,13 +142,10 @@ class _NewRequestState extends State<NewRequest> {
return ValidateEitTransactionModel(dATEVALUE: dateVal, nAME: e.aPPLICATIONCOLUMNNAME, nUMBERVALUE: numberVal, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: vatcherVal.toString()).toJson();
}).toList();
Utils.showLoading(context);
submitCcpTransactionList = await MyRequestsApiClient().getSubmitNewRequest(values);
getCCPTransactionsList = await MyRequestsApiClient().getCcpTransactions(values);
submitCcpTransactionList = await MyRequestsApiClient().getSubmitNewRequest(values, functionName: requestModel?.functionName ?? "HMG_EMP_BUS_TRIP_SET_SS");
getCCPTransactionsList = await MyRequestsApiClient().getCcpTransactions(values, functionName: requestModel?.functionName ?? "HMG_EMP_BUS_TRIP_SET_SS");
Utils.hideLoading(context);
Navigator.pushNamed(
context,
AppRoutes.myRequests,
);
Navigator.pushNamed(context, AppRoutes.myRequests, arguments: requestModel);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
@ -140,7 +156,7 @@ class _NewRequestState extends State<NewRequest> {
void getConcurrentPrograms() async {
try {
Utils.showLoading(context);
getConcurrentProgramsList = await MyRequestsApiClient().getConcurrentPrograms(groupId!);
getConcurrentProgramsList = await MyRequestsApiClient().getConcurrentPrograms(requestModel!.groupID!);
Utils.hideLoading(context);
setState(() {});
} catch (ex) {

Loading…
Cancel
Save