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/classes/consts.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/vacation_rule/vr_item_types_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';
class LeaveBalanceApiClient {
static final LeaveBalanceApiClient _instance = LeaveBalanceApiClient._internal();
@ -12,23 +12,23 @@ class LeaveBalanceApiClient {
factory LeaveBalanceApiClient() => _instance;
Future<List<GetVacationRulesList>> getAbsenceTransactions(int pSelectedResopID) async {
Future<List<GetAbsenceTransactionList>> getAbsenceTransactions(int pSelectedResopID) async {
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};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getVacationRulesList ?? [];
return responseData.getAbsenceTransactionList ?? [];
}, url, postParams);
}
Future<List<VrItemTypesList>> getVrItgetAbsenceAttendanceTypesemTypes() async {
Future<List<GetAbsenceAttendanceTypesList>> getAbsenceAttendanceTypes() async {
String url = "${ApiConsts.erpRest}GET_ABSENCE_ATTENDANCE_TYPES";
Map<String, dynamic> postParams = {};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.vrItemTypesList ?? [];
return responseData.getAbsenceAttendanceTypesList ?? [];
}, url, postParams);
}
}

@ -1,7 +1,6 @@
import 'dart:io';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:logger/logger.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart';
@ -61,7 +60,6 @@ class MyApp extends StatelessWidget {
Widget build(BuildContext context) {
return Sizer(
builder: (context, orientation, deviceType) {
print(AppState().postParamsObject?.toJson());
var obj = AppState().postParamsObject;
obj?.languageID = EasyLocalization.of(context)?.locale.languageCode == "ar" ? 1 : 2;
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_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/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_login_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? forgetPasswordTokenID;
List<String>? getAbsenceAttachmentsList;
List<String>? getAbsenceAttendanceTypesList;
List<GetAbsenceAttendanceTypesList>? getAbsenceAttendanceTypesList;
List<GetAbsenceCollectionNotificationBodyList>? getAbsenceCollectionNotificationBodyList;
List<String>? getAbsenceDffStructureList;
List<String>? getAbsenceTransactionList;
List<GetAbsenceTransactionList>? getAbsenceTransactionList;
List<GetAccrualBalancesList>? getAccrualBalancesList;
List<GetActionHistoryList>? getActionHistoryList;
List<GetAddressDffStructureList>? getAddressDffStructureList;
@ -671,7 +673,13 @@ class GenericResponseModel {
employeeQR = json['EmployeeQR'];
forgetPasswordTokenID = json['ForgetPasswordTokenID'];
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) {
getAbsenceCollectionNotificationBodyList = <GetAbsenceCollectionNotificationBodyList>[];
@ -681,7 +689,14 @@ class GenericResponseModel {
}
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)));
if (json['GetActionHistoryList'] != null) {
@ -1311,14 +1326,20 @@ class GenericResponseModel {
data['EmployeeQR'] = this.employeeQR;
data['ForgetPasswordTokenID'] = this.forgetPasswordTokenID;
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) {
data['GetAbsenceCollectionNotificationBodyList'] = this.getAbsenceCollectionNotificationBodyList!.map((v) => v.toJson()).toList();
}
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;
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/classes/utils.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';
class AddLeaveBalanceScreen extends StatefulWidget {
@ -15,6 +16,8 @@ class AddLeaveBalanceScreen extends StatefulWidget {
}
class _AddLeaveBalanceScreenState extends State<AddLeaveBalanceScreen> {
List<GetAbsenceAttendanceTypesList> absenceList = [];
@override
void initState() {
super.initState();
@ -24,7 +27,7 @@ class _AddLeaveBalanceScreenState extends State<AddLeaveBalanceScreen> {
void getAbsenceAttendanceTypes() async {
try {
Utils.showLoading(context);
var bac = await LeaveBalanceApiClient().getAbsenceTransactions(-999);
absenceList = await LeaveBalanceApiClient().getAbsenceAttendanceTypes();
Utils.hideLoading(context);
setState(() {});
} 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/widget_extensions.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/item_detail_view_widget.dart';
@ -20,7 +21,7 @@ class LeaveBalance extends StatefulWidget {
}
class _LeaveBalanceState extends State<LeaveBalance> {
List<String> list = [];
List<GetAbsenceTransactionList>? absenceTransList;
@override
void initState() {
@ -36,7 +37,7 @@ class _LeaveBalanceState extends State<LeaveBalance> {
void getAbsenceTransactions() async {
try {
Utils.showLoading(context);
var bac = await LeaveBalanceApiClient().getAbsenceTransactions(-999);
absenceTransList = await LeaveBalanceApiClient().getAbsenceTransactions(-999);
Utils.hideLoading(context);
setState(() {});
} catch (ex) {
@ -53,9 +54,9 @@ class _LeaveBalanceState extends State<LeaveBalance> {
context,
title: LocaleKeys.leaveBalance.tr(),
),
body: list == null
body: absenceTransList == null
? const SizedBox()
: (list!.isEmpty
: (absenceTransList!.isEmpty
? Utils.getNoDataWidget(context)
: ListView.separated(
physics: const BouncingScrollPhysics(),
@ -75,7 +76,7 @@ class _LeaveBalanceState extends State<LeaveBalance> {
],
).objectContainerView(),
separatorBuilder: (cxt, index) => 12.height,
itemCount: list!.length + 1)),
itemCount: absenceTransList!.length)),
floatingActionButton: Container(
height: 54,
width: 54,

Loading…
Cancel
Save