leave balance cont2.

merge-requests/1/merge
Sikander Saleem 2 years ago
parent 169a9bcc60
commit 8855eb7622

@ -2,8 +2,8 @@ import 'package:mohem_flutter_app/api/api_client.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart'; import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/consts.dart'; import 'package:mohem_flutter_app/classes/consts.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart'; import 'package:mohem_flutter_app/models/generic_response_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/get_vacation_rules_list_model.dart'; import 'package:mohem_flutter_app/models/leave_balance/get_absence_attendance_types_list_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/vr_item_types_list_model.dart'; import 'package:mohem_flutter_app/models/leave_balance/get_absence_transaction_list_model.dart';
class LeaveBalanceApiClient { class LeaveBalanceApiClient {
static final LeaveBalanceApiClient _instance = LeaveBalanceApiClient._internal(); static final LeaveBalanceApiClient _instance = LeaveBalanceApiClient._internal();
@ -12,23 +12,23 @@ class LeaveBalanceApiClient {
factory LeaveBalanceApiClient() => _instance; factory LeaveBalanceApiClient() => _instance;
Future<List<GetVacationRulesList>> getAbsenceTransactions(int pSelectedResopID) async { Future<List<GetAbsenceTransactionList>> getAbsenceTransactions(int pSelectedResopID) async {
String url = "${ApiConsts.erpRest}GET_ABSENCE_TRANSACTIONS"; String url = "${ApiConsts.erpRest}GET_ABSENCE_TRANSACTIONS";
Map<String, dynamic> postParams = {"P_PAGE_LIMIT": 50, "P_PAGE_NUM": 1, "P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": pSelectedResopID}; Map<String, dynamic> postParams = {"P_PAGE_LIMIT": 50, "P_PAGE_NUM": 1, "P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": pSelectedResopID};
postParams.addAll(AppState().postParamsJson); postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) { return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json); GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getVacationRulesList ?? []; return responseData.getAbsenceTransactionList ?? [];
}, url, postParams); }, url, postParams);
} }
Future<List<VrItemTypesList>> getVrItgetAbsenceAttendanceTypesemTypes() async { Future<List<GetAbsenceAttendanceTypesList>> getAbsenceAttendanceTypes() async {
String url = "${ApiConsts.erpRest}GET_ABSENCE_ATTENDANCE_TYPES"; String url = "${ApiConsts.erpRest}GET_ABSENCE_ATTENDANCE_TYPES";
Map<String, dynamic> postParams = {}; Map<String, dynamic> postParams = {};
postParams.addAll(AppState().postParamsJson); postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) { return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json); GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.vrItemTypesList ?? []; return responseData.getAbsenceAttendanceTypesList ?? [];
}, url, postParams); }, url, postParams);
} }
} }

@ -1,7 +1,6 @@
import 'dart:io'; import 'dart:io';
import 'package:easy_localization/easy_localization.dart'; import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:logger/logger.dart'; import 'package:logger/logger.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart'; import 'package:mohem_flutter_app/app_state/app_state.dart';
@ -61,7 +60,6 @@ class MyApp extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Sizer( return Sizer(
builder: (context, orientation, deviceType) { builder: (context, orientation, deviceType) {
print(AppState().postParamsObject?.toJson());
var obj = AppState().postParamsObject; var obj = AppState().postParamsObject;
obj?.languageID = EasyLocalization.of(context)?.locale.languageCode == "ar" ? 1 : 2; obj?.languageID = EasyLocalization.of(context)?.locale.languageCode == "ar" ? 1 : 2;
AppState().setPostParamsModel(obj!); AppState().setPostParamsModel(obj!);

@ -32,6 +32,8 @@ import 'package:mohem_flutter_app/models/get_schedule_shifts_details_list_model.
import 'package:mohem_flutter_app/models/get_stamp_ms_notification_body_list_model.dart'; import 'package:mohem_flutter_app/models/get_stamp_ms_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_stamp_ns_notification_body_list_model.dart'; import 'package:mohem_flutter_app/models/get_stamp_ns_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_time_card_summary_list_model.dart'; import 'package:mohem_flutter_app/models/get_time_card_summary_list_model.dart';
import 'package:mohem_flutter_app/models/leave_balance/get_absence_attendance_types_list_model.dart';
import 'package:mohem_flutter_app/models/leave_balance/get_absence_transaction_list_model.dart';
import 'package:mohem_flutter_app/models/member_information_list_model.dart'; import 'package:mohem_flutter_app/models/member_information_list_model.dart';
import 'package:mohem_flutter_app/models/member_login_list_model.dart'; import 'package:mohem_flutter_app/models/member_login_list_model.dart';
import 'package:mohem_flutter_app/models/monthly_pay_slip/get_deductions_List_model.dart'; import 'package:mohem_flutter_app/models/monthly_pay_slip/get_deductions_List_model.dart';
@ -132,10 +134,10 @@ class GenericResponseModel {
String? employeeQR; String? employeeQR;
String? forgetPasswordTokenID; String? forgetPasswordTokenID;
List<String>? getAbsenceAttachmentsList; List<String>? getAbsenceAttachmentsList;
List<String>? getAbsenceAttendanceTypesList; List<GetAbsenceAttendanceTypesList>? getAbsenceAttendanceTypesList;
List<GetAbsenceCollectionNotificationBodyList>? getAbsenceCollectionNotificationBodyList; List<GetAbsenceCollectionNotificationBodyList>? getAbsenceCollectionNotificationBodyList;
List<String>? getAbsenceDffStructureList; List<String>? getAbsenceDffStructureList;
List<String>? getAbsenceTransactionList; List<GetAbsenceTransactionList>? getAbsenceTransactionList;
List<GetAccrualBalancesList>? getAccrualBalancesList; List<GetAccrualBalancesList>? getAccrualBalancesList;
List<GetActionHistoryList>? getActionHistoryList; List<GetActionHistoryList>? getActionHistoryList;
List<GetAddressDffStructureList>? getAddressDffStructureList; List<GetAddressDffStructureList>? getAddressDffStructureList;
@ -671,7 +673,13 @@ class GenericResponseModel {
employeeQR = json['EmployeeQR']; employeeQR = json['EmployeeQR'];
forgetPasswordTokenID = json['ForgetPasswordTokenID']; forgetPasswordTokenID = json['ForgetPasswordTokenID'];
getAbsenceAttachmentsList = json['GetAbsenceAttachmentsList']; getAbsenceAttachmentsList = json['GetAbsenceAttachmentsList'];
getAbsenceAttendanceTypesList = json['GetAbsenceAttendanceTypesList'];
if (json['GetAbsenceAttendanceTypesList'] != null) {
getAbsenceAttendanceTypesList = <GetAbsenceAttendanceTypesList>[];
json['GetAbsenceAttendanceTypesList'].forEach((v) {
getAbsenceAttendanceTypesList!.add(new GetAbsenceAttendanceTypesList.fromJson(v));
});
}
if (json['GetAbsenceCollectionNotificationBodyList'] != null) { if (json['GetAbsenceCollectionNotificationBodyList'] != null) {
getAbsenceCollectionNotificationBodyList = <GetAbsenceCollectionNotificationBodyList>[]; getAbsenceCollectionNotificationBodyList = <GetAbsenceCollectionNotificationBodyList>[];
@ -681,7 +689,14 @@ class GenericResponseModel {
} }
getAbsenceDffStructureList = json['GetAbsenceDffStructureList']; getAbsenceDffStructureList = json['GetAbsenceDffStructureList'];
getAbsenceTransactionList = json['GetAbsenceTransactionList'];
if (json['GetAbsenceTransactionList'] != null) {
getAbsenceTransactionList = <GetAbsenceTransactionList>[];
json['GetAbsenceTransactionList'].forEach((v) {
getAbsenceTransactionList!.add(new GetAbsenceTransactionList.fromJson(v));
});
}
getAccrualBalancesList = json["GetAccrualBalancesList"] == null ? null : List<GetAccrualBalancesList>.from(json["GetAccrualBalancesList"].map((x) => GetAccrualBalancesList.fromJson(x))); getAccrualBalancesList = json["GetAccrualBalancesList"] == null ? null : List<GetAccrualBalancesList>.from(json["GetAccrualBalancesList"].map((x) => GetAccrualBalancesList.fromJson(x)));
if (json['GetActionHistoryList'] != null) { if (json['GetActionHistoryList'] != null) {
@ -1311,14 +1326,20 @@ class GenericResponseModel {
data['EmployeeQR'] = this.employeeQR; data['EmployeeQR'] = this.employeeQR;
data['ForgetPasswordTokenID'] = this.forgetPasswordTokenID; data['ForgetPasswordTokenID'] = this.forgetPasswordTokenID;
data['GetAbsenceAttachmentsList'] = this.getAbsenceAttachmentsList; data['GetAbsenceAttachmentsList'] = this.getAbsenceAttachmentsList;
data['GetAbsenceAttendanceTypesList'] = this.getAbsenceAttendanceTypesList;
if (this.getAbsenceAttendanceTypesList != null) {
data['GetAbsenceAttendanceTypesList'] = this.getAbsenceAttendanceTypesList!.map((v) => v.toJson()).toList();
}
if (this.getAbsenceCollectionNotificationBodyList != null) { if (this.getAbsenceCollectionNotificationBodyList != null) {
data['GetAbsenceCollectionNotificationBodyList'] = this.getAbsenceCollectionNotificationBodyList!.map((v) => v.toJson()).toList(); data['GetAbsenceCollectionNotificationBodyList'] = this.getAbsenceCollectionNotificationBodyList!.map((v) => v.toJson()).toList();
} }
data['GetAbsenceDffStructureList'] = this.getAbsenceDffStructureList; data['GetAbsenceDffStructureList'] = this.getAbsenceDffStructureList;
data['GetAbsenceTransactionList'] = this.getAbsenceTransactionList;
if (this.getAbsenceTransactionList != null) {
data['GetAbsenceTransactionList'] = this.getAbsenceTransactionList!.map((v) => v.toJson()).toList();
}
data['GetAccrualBalancesList'] = this.getAccrualBalancesList; data['GetAccrualBalancesList'] = this.getAccrualBalancesList;
if (this.getActionHistoryList != null) { if (this.getActionHistoryList != null) {

@ -0,0 +1,24 @@
class GetAbsenceAttendanceTypesList {
int? aBSENCEATTENDANCETYPEID;
String? aBSENCEATTENDANCETYPENAME;
String? dESCFLEXCONTEXTCODE;
String? hOURSORDAYS;
GetAbsenceAttendanceTypesList({this.aBSENCEATTENDANCETYPEID, this.aBSENCEATTENDANCETYPENAME, this.dESCFLEXCONTEXTCODE, this.hOURSORDAYS});
GetAbsenceAttendanceTypesList.fromJson(Map<String, dynamic> json) {
aBSENCEATTENDANCETYPEID = json['ABSENCE_ATTENDANCE_TYPE_ID'];
aBSENCEATTENDANCETYPENAME = json['ABSENCE_ATTENDANCE_TYPE_NAME'];
dESCFLEXCONTEXTCODE = json['DESC_FLEX_CONTEXT_CODE'];
hOURSORDAYS = json['HOURS_OR_DAYS'];
}
Map<String, dynamic> toJson() {
Map<String, dynamic> data = new Map<String, dynamic>();
data['ABSENCE_ATTENDANCE_TYPE_ID'] = this.aBSENCEATTENDANCETYPEID;
data['ABSENCE_ATTENDANCE_TYPE_NAME'] = this.aBSENCEATTENDANCETYPENAME;
data['DESC_FLEX_CONTEXT_CODE'] = this.dESCFLEXCONTEXTCODE;
data['HOURS_OR_DAYS'] = this.hOURSORDAYS;
return data;
}
}

@ -0,0 +1,80 @@
class GetAbsenceTransactionList {
int? aBSENCEATTENDANCEID;
int? aBSENCEATTENDANCETYPEID;
String? aBSENCECATEGORY;
double? aBSENCEDAYS;
double? aBSENCEHOURS;
String? aBSENCESTATUS;
String? aBSENCETYPE;
String? aPPROVALSTATUS;
String? aTTACHMENTEXIST;
String? dELETEBUTTON;
String? eNDDATE;
int? fROMROWNUM;
int? nOOFROWS;
int? rOWNUM;
String? sTARTDATE;
int? tOROWNUM;
String? uPDATEBUTTON;
GetAbsenceTransactionList(
{this.aBSENCEATTENDANCEID,
this.aBSENCEATTENDANCETYPEID,
this.aBSENCECATEGORY,
this.aBSENCEDAYS,
this.aBSENCEHOURS,
this.aBSENCESTATUS,
this.aBSENCETYPE,
this.aPPROVALSTATUS,
this.aTTACHMENTEXIST,
this.dELETEBUTTON,
this.eNDDATE,
this.fROMROWNUM,
this.nOOFROWS,
this.rOWNUM,
this.sTARTDATE,
this.tOROWNUM,
this.uPDATEBUTTON});
GetAbsenceTransactionList.fromJson(Map<String, dynamic> json) {
aBSENCEATTENDANCEID = json['ABSENCE_ATTENDANCE_ID'];
aBSENCEATTENDANCETYPEID = json['ABSENCE_ATTENDANCE_TYPE_ID'];
aBSENCECATEGORY = json['ABSENCE_CATEGORY'];
aBSENCEDAYS = json['ABSENCE_DAYS'];
aBSENCEHOURS = json['ABSENCE_HOURS'];
aBSENCESTATUS = json['ABSENCE_STATUS'];
aBSENCETYPE = json['ABSENCE_TYPE'];
aPPROVALSTATUS = json['APPROVAL_STATUS'];
aTTACHMENTEXIST = json['ATTACHMENT_EXIST'];
dELETEBUTTON = json['DELETE_BUTTON'];
eNDDATE = json['END_DATE'];
fROMROWNUM = json['FROM_ROW_NUM'];
nOOFROWS = json['NO_OF_ROWS'];
rOWNUM = json['ROW_NUM'];
sTARTDATE = json['START_DATE'];
tOROWNUM = json['TO_ROW_NUM'];
uPDATEBUTTON = json['UPDATE_BUTTON'];
}
Map<String, dynamic> toJson() {
Map<String, dynamic> data = new Map<String, dynamic>();
data['ABSENCE_ATTENDANCE_ID'] = this.aBSENCEATTENDANCEID;
data['ABSENCE_ATTENDANCE_TYPE_ID'] = this.aBSENCEATTENDANCETYPEID;
data['ABSENCE_CATEGORY'] = this.aBSENCECATEGORY;
data['ABSENCE_DAYS'] = this.aBSENCEDAYS;
data['ABSENCE_HOURS'] = this.aBSENCEHOURS;
data['ABSENCE_STATUS'] = this.aBSENCESTATUS;
data['ABSENCE_TYPE'] = this.aBSENCETYPE;
data['APPROVAL_STATUS'] = this.aPPROVALSTATUS;
data['ATTACHMENT_EXIST'] = this.aTTACHMENTEXIST;
data['DELETE_BUTTON'] = this.dELETEBUTTON;
data['END_DATE'] = this.eNDDATE;
data['FROM_ROW_NUM'] = this.fROMROWNUM;
data['NO_OF_ROWS'] = this.nOOFROWS;
data['ROW_NUM'] = this.rOWNUM;
data['START_DATE'] = this.sTARTDATE;
data['TO_ROW_NUM'] = this.tOROWNUM;
data['UPDATE_BUTTON'] = this.uPDATEBUTTON;
return data;
}
}

@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/leave_balance_api_client.dart'; import 'package:mohem_flutter_app/api/leave_balance_api_client.dart';
import 'package:mohem_flutter_app/classes/utils.dart'; import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/leave_balance/get_absence_attendance_types_list_model.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
class AddLeaveBalanceScreen extends StatefulWidget { class AddLeaveBalanceScreen extends StatefulWidget {
@ -15,6 +16,8 @@ class AddLeaveBalanceScreen extends StatefulWidget {
} }
class _AddLeaveBalanceScreenState extends State<AddLeaveBalanceScreen> { class _AddLeaveBalanceScreenState extends State<AddLeaveBalanceScreen> {
List<GetAbsenceAttendanceTypesList> absenceList = [];
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@ -24,7 +27,7 @@ class _AddLeaveBalanceScreenState extends State<AddLeaveBalanceScreen> {
void getAbsenceAttendanceTypes() async { void getAbsenceAttendanceTypes() async {
try { try {
Utils.showLoading(context); Utils.showLoading(context);
var bac = await LeaveBalanceApiClient().getAbsenceTransactions(-999); absenceList = await LeaveBalanceApiClient().getAbsenceAttendanceTypes();
Utils.hideLoading(context); Utils.hideLoading(context);
setState(() {}); setState(() {});
} catch (ex) { } catch (ex) {

@ -7,6 +7,7 @@ import 'package:mohem_flutter_app/config/routes.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart'; import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_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/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/leave_balance/get_absence_transaction_list_model.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart'; import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/item_detail_view_widget.dart'; import 'package:mohem_flutter_app/widgets/item_detail_view_widget.dart';
@ -20,7 +21,7 @@ class LeaveBalance extends StatefulWidget {
} }
class _LeaveBalanceState extends State<LeaveBalance> { class _LeaveBalanceState extends State<LeaveBalance> {
List<String> list = []; List<GetAbsenceTransactionList>? absenceTransList;
@override @override
void initState() { void initState() {
@ -36,7 +37,7 @@ class _LeaveBalanceState extends State<LeaveBalance> {
void getAbsenceTransactions() async { void getAbsenceTransactions() async {
try { try {
Utils.showLoading(context); Utils.showLoading(context);
var bac = await LeaveBalanceApiClient().getAbsenceTransactions(-999); absenceTransList = await LeaveBalanceApiClient().getAbsenceTransactions(-999);
Utils.hideLoading(context); Utils.hideLoading(context);
setState(() {}); setState(() {});
} catch (ex) { } catch (ex) {
@ -53,9 +54,9 @@ class _LeaveBalanceState extends State<LeaveBalance> {
context, context,
title: LocaleKeys.leaveBalance.tr(), title: LocaleKeys.leaveBalance.tr(),
), ),
body: list == null body: absenceTransList == null
? const SizedBox() ? const SizedBox()
: (list!.isEmpty : (absenceTransList!.isEmpty
? Utils.getNoDataWidget(context) ? Utils.getNoDataWidget(context)
: ListView.separated( : ListView.separated(
physics: const BouncingScrollPhysics(), physics: const BouncingScrollPhysics(),
@ -75,7 +76,7 @@ class _LeaveBalanceState extends State<LeaveBalance> {
], ],
).objectContainerView(), ).objectContainerView(),
separatorBuilder: (cxt, index) => 12.height, separatorBuilder: (cxt, index) => 12.height,
itemCount: list!.length + 1)), itemCount: absenceTransList!.length)),
floatingActionButton: Container( floatingActionButton: Container(
height: 54, height: 54,
width: 54, width: 54,

Loading…
Cancel
Save