Merge branch 'development_haroon' into 'master'
Development haroon See merge request Cloud_Solution/mohemm-flutter-app!50merge-requests/49/merge
commit
1ab2fe424e
File diff suppressed because one or more lines are too long
@ -0,0 +1,48 @@
|
||||
class GetRFCEmployeeList {
|
||||
String? aCTION;
|
||||
String? eMPLOYEEDISPLAYNAME;
|
||||
String? eMPLOYEEIMAGE;
|
||||
int? fROMROWNUM;
|
||||
int? nOOFROWS;
|
||||
int? rOWNUM;
|
||||
int? sEQ;
|
||||
int? tOROWNUM;
|
||||
String? uSERNAME;
|
||||
|
||||
GetRFCEmployeeList(
|
||||
{this.aCTION,
|
||||
this.eMPLOYEEDISPLAYNAME,
|
||||
this.eMPLOYEEIMAGE,
|
||||
this.fROMROWNUM,
|
||||
this.nOOFROWS,
|
||||
this.rOWNUM,
|
||||
this.sEQ,
|
||||
this.tOROWNUM,
|
||||
this.uSERNAME});
|
||||
|
||||
GetRFCEmployeeList.fromJson(Map<String, dynamic> json) {
|
||||
aCTION = json['ACTION'];
|
||||
eMPLOYEEDISPLAYNAME = json['EMPLOYEE_DISPLAY_NAME'];
|
||||
eMPLOYEEIMAGE = json['EMPLOYEE_IMAGE'];
|
||||
fROMROWNUM = json['FROM_ROW_NUM'];
|
||||
nOOFROWS = json['NO_OF_ROWS'];
|
||||
rOWNUM = json['ROW_NUM'];
|
||||
sEQ = json['SEQ'];
|
||||
tOROWNUM = json['TO_ROW_NUM'];
|
||||
uSERNAME = json['USER_NAME'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ACTION'] = this.aCTION;
|
||||
data['EMPLOYEE_DISPLAY_NAME'] = this.eMPLOYEEDISPLAYNAME;
|
||||
data['EMPLOYEE_IMAGE'] = this.eMPLOYEEIMAGE;
|
||||
data['FROM_ROW_NUM'] = this.fROMROWNUM;
|
||||
data['NO_OF_ROWS'] = this.nOOFROWS;
|
||||
data['ROW_NUM'] = this.rOWNUM;
|
||||
data['SEQ'] = this.sEQ;
|
||||
data['TO_ROW_NUM'] = this.tOROWNUM;
|
||||
data['USER_NAME'] = this.uSERNAME;
|
||||
return data;
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
class ResubmitEITRequestResponse {
|
||||
String? pRETURNMSG;
|
||||
String? pRETURNSTATUS;
|
||||
int? pTRANSACTIONID;
|
||||
|
||||
ResubmitEITRequestResponse(
|
||||
{this.pRETURNMSG, this.pRETURNSTATUS, this.pTRANSACTIONID});
|
||||
|
||||
ResubmitEITRequestResponse.fromJson(Map<String, dynamic> json) {
|
||||
pRETURNMSG = json['P_RETURN_MSG'];
|
||||
pRETURNSTATUS = json['P_RETURN_STATUS'];
|
||||
pTRANSACTIONID = json['P_TRANSACTION_ID'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['P_RETURN_MSG'] = this.pRETURNMSG;
|
||||
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
|
||||
data['P_TRANSACTION_ID'] = this.pTRANSACTIONID;
|
||||
return data;
|
||||
}
|
||||
}
|
@ -0,0 +1,131 @@
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/api/my_attendance_api_client.dart';
|
||||
import 'package:mohem_flutter_app/classes/utils.dart';
|
||||
import 'package:mohem_flutter_app/config/routes.dart';
|
||||
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
||||
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
||||
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
|
||||
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
|
||||
import 'package:mohem_flutter_app/models/worklist/hr/eit_otification_body_model.dart';
|
||||
import 'package:mohem_flutter_app/models/worklist/resubmit_eit_response_model.dart';
|
||||
import 'package:mohem_flutter_app/models/worklist_response_model.dart';
|
||||
import 'package:mohem_flutter_app/ui/misc/request_submit_screen.dart';
|
||||
import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart';
|
||||
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
|
||||
import 'package:mohem_flutter_app/widgets/item_detail_view_widget.dart';
|
||||
|
||||
class UpdateContinueSheet extends StatefulWidget {
|
||||
WorkListResponseModel? workListData;
|
||||
List<GetEitCollectionNotificationBodyList>? getEitCollectionNotificationBodyList;
|
||||
DynamicListViewParams? dynamicParams;
|
||||
|
||||
UpdateContinueSheet({this.workListData, this.getEitCollectionNotificationBodyList, this.dynamicParams, Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
State<UpdateContinueSheet> createState() => _UpdateContinueSheetState();
|
||||
}
|
||||
|
||||
class _UpdateContinueSheetState extends State<UpdateContinueSheet> {
|
||||
double itemHeight = 0;
|
||||
double itemWidth = 0;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var size = MediaQuery.of(context).size;
|
||||
itemHeight = (size.height - kToolbarHeight - 24) / 9;
|
||||
itemWidth = size.width / 2;
|
||||
return Column(
|
||||
children: [
|
||||
if ((widget.workListData?.sUBJECT ?? "").isNotEmpty) widget.workListData!.sUBJECT!.toText14().paddingOnly(top: 10, right: 21, left: 21, bottom: 21),
|
||||
ListView.separated(
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (cxt, index) {
|
||||
List<CollectionNotificationEit> dataList = widget.getEitCollectionNotificationBodyList!.isEmpty ? [] : (widget.getEitCollectionNotificationBodyList![index].collectionNotification ?? []);
|
||||
dataList = dataList.where((o) => o.displayFlag == "Y").toList();
|
||||
bool isOdd = false;
|
||||
if (dataList.length % 2 != 0) {
|
||||
isOdd = true;
|
||||
dataList.add(new CollectionNotificationEit());
|
||||
}
|
||||
return GridView.builder(
|
||||
itemCount: dataList.length,
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
itemBuilder: (context, index) => ItemDetailViewGridItem(
|
||||
index,
|
||||
dataList[index].segmentPrompt,
|
||||
dataList[index].segmentValueDsp,
|
||||
isNeedToShowEmptyDivider: (dataList.length == index + 1)
|
||||
? isOdd
|
||||
? true
|
||||
: false
|
||||
: false,
|
||||
),
|
||||
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
|
||||
crossAxisCount: 2,
|
||||
childAspectRatio: (itemWidth / itemHeight),
|
||||
),
|
||||
).objectContainerView();
|
||||
},
|
||||
separatorBuilder: (cxt, index) => 12.height,
|
||||
itemCount: widget.getEitCollectionNotificationBodyList!.length,
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(right: 21, left: 21, bottom: 21),
|
||||
child: Row(
|
||||
children: [
|
||||
DefaultButton(
|
||||
LocaleKeys.edit.tr(),
|
||||
() => performEditAction(),
|
||||
colors: const [Color(0xffE47A7E), Color(0xffDE6D71)],
|
||||
).expanded,
|
||||
8.width,
|
||||
DefaultButton(
|
||||
LocaleKeys.next.tr(),
|
||||
() => performNextAction(),
|
||||
colors: const [Color(0xff28C884), Color(0xff1BB271)],
|
||||
).expanded,
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
void performNextAction() async {
|
||||
//Resubmit EIT Transaction
|
||||
try {
|
||||
Utils.showLoading(context);
|
||||
List<Map<String, dynamic>> values = [];
|
||||
for (GetEitCollectionNotificationBodyList element in widget.getEitCollectionNotificationBodyList!) {
|
||||
for (CollectionNotificationEit collectionElement in element.collectionNotification!) {
|
||||
values.add({
|
||||
"TRANSACTION_NUMBER": collectionElement.transactionNumber,
|
||||
"NAME": collectionElement.applicationColumnName,
|
||||
"VARCHAR2_VALUE": collectionElement.varchar2Value,
|
||||
"NUMBER_VALUE": collectionElement.numberValue,
|
||||
"DATE_VALUE": collectionElement.dateValue,
|
||||
});
|
||||
}
|
||||
}
|
||||
ResubmitEITRequestResponse resubmitEITRequestResponse = await MyAttendanceApiClient().reSubmitEitTransaction(widget.workListData!.iTEMKEY!, widget.workListData!.nOTIFICATIONID, values);
|
||||
Utils.hideLoading(context);
|
||||
await Navigator.pushNamed(
|
||||
context,
|
||||
AppRoutes.requestSubmitScreen,
|
||||
arguments: RequestSubmitScreenParams(LocaleKeys.submit.tr(), resubmitEITRequestResponse.pTRANSACTIONID!, widget.workListData!.iTEMKEY!, 'eit'),
|
||||
);
|
||||
} catch (ex) {
|
||||
Utils.hideLoading(context);
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
|
||||
void performEditAction() {
|
||||
//Open EIT Edit Screen
|
||||
|
||||
Navigator.pushNamed(context, AppRoutes.addDynamicInput, arguments: widget.dynamicParams);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue