add and update family member in progress

merge-requests/1/merge
Fatimah Alshammari 3 years ago
parent 17ca565f4c
commit a4ca7433a4

@ -3,11 +3,16 @@ import 'dart:async';
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/get_approves_list_model.dart';
import 'package:mohem_flutter_app/models/get_contact_dff_structure_list.dart';
import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart';
import 'package:mohem_flutter_app/models/get_employee_address_model.dart';
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart';
import 'package:mohem_flutter_app/models/get_employee_phones_model.dart';
import 'package:mohem_flutter_app/models/profile/basic_details_dff_structure.dart';
import 'package:mohem_flutter_app/models/profile/get_contact_clos_structure_list.dart';
import 'package:mohem_flutter_app/models/profile/get_contact_details_list.dart';
import 'package:mohem_flutter_app/models/profile/phone_number_types_modek.dart';
import 'package:mohem_flutter_app/models/profile/submit_contact_transaction_list_model.dart';
import 'package:mohem_flutter_app/models/profile/submit_phone_transactions.dart';
@ -160,13 +165,15 @@ class ProfileApiClient {
}, url, postParams);
}
Future<GetApprovesList?> getApproves(int transactionId) async {
Future<GetApprovesList?> getApproves(String action, String comments,int transactionId, String itemKey) async {
String url = "${ApiConsts.erpRest}GET_APPROVERS_LIST";
Map<String, dynamic> postParams = {
"P_AME_TRANSACTION_TYPE": "SSHRMS",
"P_PAGE_LIMIT": 1000,
"P_PAGE_NUM": 1,
"P_TRANSACTION_ID": transactionId,
"P_ACTION_MODE": action,
"P_COMMENTS": comments,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
@ -210,4 +217,65 @@ class ProfileApiClient {
return responseData.startEitApprovalProcess;
}, url, postParams);
}
// add & update family member
Future<List<GetBasicDetDffStructureList>> getBasicDetDffStructure() async {
String url = "${ApiConsts.erpRest}GET_BASIC_DET_DFF_STRUCTURE";
Map<String, dynamic> postParams = {
"P_FUNCTION_NAME": "HR_PERINFO_SS",
"P_MENU_TYPE": "E",
"P_REQUEST_TYPE": "CONTACT",
"P_SELECTED_RESP_ID": -999};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getBasicDetDffStructureList ?? [];
}, url, postParams);
}
// add & update family member
Future<List<GetContactColsStructureList>> getContactColsStructureList() async {
String url = "${ApiConsts.erpRest}GET_CONTACT_COLS_STRUCTURE";
Map<String, dynamic> postParams = {
"P_ACTION": "ADD",
// "P_ACTION":actionType,
"P_FUNCTION_NAME": "HR_PERINFO_SS",
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getContactColsStructureList ?? [];
}, url, postParams);
}
// update family member
Future<List<GetContactDetailsList>> getContactDetailsList(int contactRelationId) async {
String url = "${ApiConsts.erpRest}GET_CONTACT_DETAILS";
Map<String, dynamic> postParams = {
"P_MENU_TYPE": "E",
"P_SELECTED_RESP_ID": -999,
"P_CONTACT_RELATIONSHIP_ID":contactRelationId,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getContactDetailsList ?? [];
}, url, postParams);
}
// add & update family member
Future<List<GetContactDffStructureList>> getContactDffStructureList() async {
String url = "${ApiConsts.erpRest}GET_CONTACT_DFF_STRUCTURE";
Map<String, dynamic> postParams = {
"P_DESC_FLEX_CONTEXT_CODE": "HMG_ADD_CONTACT_DETAILS",
"P_FUNCTION_NAME": "HR_PERINFO_SS",
"P_MENU_TYPE": "E",
"P_SELECTED_RESP_ID": -999,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getContactDffStructureList ?? [];
}, url, postParams);
}
}

@ -18,6 +18,7 @@ import 'package:mohem_flutter_app/ui/profile/delete_family_member.dart';
import 'package:mohem_flutter_app/ui/profile/dynamic_screens/dynamic_input_profile_screen.dart';
import 'package:mohem_flutter_app/ui/profile/family_members.dart';
import 'package:mohem_flutter_app/ui/profile/personal_info.dart';
import 'package:mohem_flutter_app/ui/profile/add_update_family_member.dart';
// import 'package:mohem_flutter_app/ui/my_attendance/work_from_home_screen.dart';
import 'package:mohem_flutter_app/ui/screens/eit/add_eit.dart';
@ -77,6 +78,7 @@ class AppRoutes {
static const String contactDetails = "/contactDetails";
static const String familyMembers = "/familyMembers";
static const String deleteFamilyMember = "/deleteFamilyMember";
static const String addUpdateFamilyMember = "/addUpdateFamilyMember";
// Mowadhafhi
static const String mowadhafhi = "/mowadhafhi";
@ -125,6 +127,7 @@ class AppRoutes {
addDynamicInputProfile: (context) => DynamicInputScreenProfile(),
deleteFamilyMember: (context) => DeleteFamilyMember(ModalRoute.of(context)!.settings.arguments as int),
requestSubmitScreen: (context) => RequestSubmitScreen(),
addUpdateFamilyMember: (context) => AddUpdateFamilyMember(),
//mowadhafhi
mowadhafhi: (context) => MowadhafhiHome(),

@ -4,6 +4,7 @@ import 'package:mohem_flutter_app/models/get_absence_collection_notification_bod
import 'package:mohem_flutter_app/models/get_action_history_list_model.dart';
import 'package:mohem_flutter_app/models/get_approves_list_model.dart';
import 'package:mohem_flutter_app/models/get_attachement_list_model.dart';
import 'package:mohem_flutter_app/models/get_contact_dff_structure_list.dart';
import 'package:mohem_flutter_app/models/get_day_hours_type_details_list_model.dart';
import 'package:mohem_flutter_app/models/get_default_value_list_model.dart';
import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart';
@ -36,6 +37,8 @@ import 'package:mohem_flutter_app/models/notification_action_model.dart';
import 'package:mohem_flutter_app/models/notification_get_respond_attributes_list_model.dart';
import 'package:mohem_flutter_app/models/profile/basic_details_cols_structions.dart';
import 'package:mohem_flutter_app/models/profile/basic_details_dff_structure.dart';
import 'package:mohem_flutter_app/models/profile/get_contact_clos_structure_list.dart';
import 'package:mohem_flutter_app/models/profile/get_contact_details_list.dart';
import 'package:mohem_flutter_app/models/profile/phone_number_types_modek.dart';
import 'package:mohem_flutter_app/models/profile/submit_phone_transactions.dart';
import 'package:mohem_flutter_app/models/start_eit_approval_process_model.dart';
@ -133,9 +136,9 @@ class GenericResponseModel {
List<String>? getCcpTransactionsList;
List<String>? getCcpTransactionsListNew;
List<String>? getConcurrentProgramsList;
List<String>? getContactColsStructureList;
List<String>? getContactDetailsList;
List<String>? getContactDffStructureList;
List<GetContactColsStructureList>? getContactColsStructureList;
List<GetContactDetailsList>? getContactDetailsList;
List<GetContactDffStructureList>? getContactDffStructureList;
GetContactNotificationBodyList? getContactNotificationBodyList;
List<String>? getCountriesList;
List<GetDayHoursTypeDetailsList>? getDayHoursTypeDetailsList;
@ -704,8 +707,19 @@ class GenericResponseModel {
getCcpTransactionsListNew = json['GetCcpTransactionsList_New'];
getConcurrentProgramsList = json['GetConcurrentProgramsList'];
getContactColsStructureList = json['GetContactColsStructureList'];
getContactDetailsList = json['GetContactDetailsList'];
getContactDffStructureList = json['GetContactDffStructureList'];
if (json['GetContactDetailsList'] != null) {
getContactDetailsList = <GetContactDetailsList>[];
json['GetContactDetailsList'].forEach((v) {
getContactDetailsList!.add(new GetContactDetailsList.fromJson(v));
});
}
if (json['GetContactColsStructureList'] != null) {
getContactColsStructureList = <GetContactColsStructureList>[];
json['GetContactColsStructureList'].forEach((v) {
getContactColsStructureList!
.add(new GetContactColsStructureList.fromJson(v));
});
}
getContactNotificationBodyList = json["GetContactNotificationBodyList"] == null ? null : GetContactNotificationBodyList.fromJson(json["GetContactNotificationBodyList"]);
getCountriesList = json['GetCountriesList'];
if (json['GetDayHoursTypeDetailsList'] != null) {
@ -1205,8 +1219,14 @@ class GenericResponseModel {
data['GetCcpTransactionsList_New'] = this.getCcpTransactionsListNew;
data['GetConcurrentProgramsList'] = this.getConcurrentProgramsList;
data['GetContactColsStructureList'] = this.getContactColsStructureList;
data['GetContactDetailsList'] = this.getContactDetailsList;
data['GetContactDffStructureList'] = this.getContactDffStructureList;
if (this.getContactDetailsList != null) {
data['GetContactDetailsList'] =
this.getContactDetailsList!.map((v) => v.toJson()).toList();
}
if (this.getContactColsStructureList != null) {
data['GetContactColsStructureList'] =
this.getContactColsStructureList!.map((v) => v.toJson()).toList();
}
data['GetContactNotificationBodyList'] = this.getContactNotificationBodyList;
data['GetCountriesList'] = this.getCountriesList;
if (this.getDayHoursTypeDetailsList != null) {

@ -0,0 +1,255 @@
class GetContactDffStructureList {
String? aLPHANUMERICALLOWEDFLAG;
String? aPPLICATIONCOLUMNNAME;
String? cHILDSEGMENTSVS;
dynamic? cHILDSEGMENTSVSSplited;
String? dEFAULTTYPE;
String? dEFAULTVALUE;
String? dESCFLEXCONTEXTCODE;
String? dESCFLEXCONTEXTNAME;
String? dESCFLEXNAME;
String? dISPLAYFLAG;
String? eNABLEDFLAG;
// ESERVICESDV? eSERVICESDV;
// List<ESERVICESVS>? eSERVICESVS;
String? fLEXVALUESETNAME;
String? fORMATTYPE;
String? fORMATTYPEDSP;
String? lONGLISTFLAG;
int? mAXIMUMSIZE;
String? mAXIMUMVALUE;
String? mINIMUMVALUE;
String? mOBILEENABLED;
String? nUMBERPRECISION;
String? nUMERICMODEENABLEDFLAG;
String? pARENTSEGMENTSDV;
List<dynamic>? pARENTSEGMENTSDVSplited;
String? pARENTSEGMENTSVS;
List<dynamic>? pARENTSEGMENTSVSSplitedVS;
String? rEADONLY;
String? rEQUIREDFLAG;
String? sEGMENTNAME;
String? sEGMENTPROMPT;
int? sEGMENTSEQNUM;
String? uPPERCASEONLYFLAG;
String? uSEDFLAG;
String? vALIDATIONTYPE;
String? vALIDATIONTYPEDSP;
GetContactDffStructureList(
{this.aLPHANUMERICALLOWEDFLAG,
this.aPPLICATIONCOLUMNNAME,
this.cHILDSEGMENTSVS,
this.cHILDSEGMENTSVSSplited,
this.dEFAULTTYPE,
this.dEFAULTVALUE,
this.dESCFLEXCONTEXTCODE,
this.dESCFLEXCONTEXTNAME,
this.dESCFLEXNAME,
this.dISPLAYFLAG,
this.eNABLEDFLAG,
// this.eSERVICESDV,
// this.eSERVICESVS,
this.fLEXVALUESETNAME,
this.fORMATTYPE,
this.fORMATTYPEDSP,
this.lONGLISTFLAG,
this.mAXIMUMSIZE,
this.mAXIMUMVALUE,
this.mINIMUMVALUE,
this.mOBILEENABLED,
this.nUMBERPRECISION,
this.nUMERICMODEENABLEDFLAG,
this.pARENTSEGMENTSDV,
this.pARENTSEGMENTSDVSplited,
this.pARENTSEGMENTSVS,
this.pARENTSEGMENTSVSSplitedVS,
this.rEADONLY,
this.rEQUIREDFLAG,
this.sEGMENTNAME,
this.sEGMENTPROMPT,
this.sEGMENTSEQNUM,
this.uPPERCASEONLYFLAG,
this.uSEDFLAG,
this.vALIDATIONTYPE,
this.vALIDATIONTYPEDSP});
GetContactDffStructureList.fromJson(Map<String, dynamic> json) {
aLPHANUMERICALLOWEDFLAG = json['ALPHANUMERIC_ALLOWED_FLAG'];
aPPLICATIONCOLUMNNAME = json['APPLICATION_COLUMN_NAME'];
cHILDSEGMENTSVS = json['CHILD_SEGMENTS_VS'];
cHILDSEGMENTSVSSplited = json['CHILD_SEGMENTS_VS_Splited'];
dEFAULTTYPE = json['DEFAULT_TYPE'];
dEFAULTVALUE = json['DEFAULT_VALUE'];
dESCFLEXCONTEXTCODE = json['DESC_FLEX_CONTEXT_CODE'];
dESCFLEXCONTEXTNAME = json['DESC_FLEX_CONTEXT_NAME'];
dESCFLEXNAME = json['DESC_FLEX_NAME'];
dISPLAYFLAG = json['DISPLAY_FLAG'];
eNABLEDFLAG = json['ENABLED_FLAG'];
// eSERVICESDV = json['E_SERVICES_DV'] != null
// ? new ESERVICESDV.fromJson(json['E_SERVICES_DV'])
// : null;
// if (json['E_SERVICES_VS'] != null) {
// eSERVICESVS = <ESERVICESVS>[];
// json['E_SERVICES_VS'].forEach((v) {
// eSERVICESVS!.add(new ESERVICESVS.fromJson(v));
// });
// }
fLEXVALUESETNAME = json['FLEX_VALUE_SET_NAME'];
fORMATTYPE = json['FORMAT_TYPE'];
fORMATTYPEDSP = json['FORMAT_TYPE_DSP'];
lONGLISTFLAG = json['LONGLIST_FLAG'];
mAXIMUMSIZE = json['MAXIMUM_SIZE'];
mAXIMUMVALUE = json['MAXIMUM_VALUE'];
mINIMUMVALUE = json['MINIMUM_VALUE'];
mOBILEENABLED = json['MOBILE_ENABLED'];
nUMBERPRECISION = json['NUMBER_PRECISION'];
nUMERICMODEENABLEDFLAG = json['NUMERIC_MODE_ENABLED_FLAG'];
pARENTSEGMENTSDV = json['PARENT_SEGMENTS_DV'];
// if (json['PARENT_SEGMENTS_DV_Splited'] != null) {
// pARENTSEGMENTSDVSplited = <Null>[];
// json['PARENT_SEGMENTS_DV_Splited'].forEach((v) {
// pARENTSEGMENTSDVSplited!.add(new Null.fromJson(v));
// });
// }
pARENTSEGMENTSVS = json['PARENT_SEGMENTS_VS'];
// if (json['PARENT_SEGMENTS_VS_SplitedVS'] != null) {
// pARENTSEGMENTSVSSplitedVS = <Null>[];
// json['PARENT_SEGMENTS_VS_SplitedVS'].forEach((v) {
// pARENTSEGMENTSVSSplitedVS!.add(new Null.fromJson(v));
// });
// }
rEADONLY = json['READ_ONLY'];
rEQUIREDFLAG = json['REQUIRED_FLAG'];
sEGMENTNAME = json['SEGMENT_NAME'];
sEGMENTPROMPT = json['SEGMENT_PROMPT'];
sEGMENTSEQNUM = json['SEGMENT_SEQ_NUM'];
uPPERCASEONLYFLAG = json['UPPERCASE_ONLY_FLAG'];
uSEDFLAG = json['USED_FLAG'];
vALIDATIONTYPE = json['VALIDATION_TYPE'];
vALIDATIONTYPEDSP = json['VALIDATION_TYPE_DSP'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['ALPHANUMERIC_ALLOWED_FLAG'] = this.aLPHANUMERICALLOWEDFLAG;
data['APPLICATION_COLUMN_NAME'] = this.aPPLICATIONCOLUMNNAME;
data['CHILD_SEGMENTS_VS'] = this.cHILDSEGMENTSVS;
data['CHILD_SEGMENTS_VS_Splited'] = this.cHILDSEGMENTSVSSplited;
data['DEFAULT_TYPE'] = this.dEFAULTTYPE;
data['DEFAULT_VALUE'] = this.dEFAULTVALUE;
data['DESC_FLEX_CONTEXT_CODE'] = this.dESCFLEXCONTEXTCODE;
data['DESC_FLEX_CONTEXT_NAME'] = this.dESCFLEXCONTEXTNAME;
data['DESC_FLEX_NAME'] = this.dESCFLEXNAME;
data['DISPLAY_FLAG'] = this.dISPLAYFLAG;
data['ENABLED_FLAG'] = this.eNABLEDFLAG;
// if (this.eSERVICESDV != null) {
// data['E_SERVICES_DV'] = this.eSERVICESDV!.toJson();
// }
// if (this.eSERVICESVS != null) {
// data['E_SERVICES_VS'] = this.eSERVICESVS!.map((v) => v.toJson()).toList();
// }
data['FLEX_VALUE_SET_NAME'] = this.fLEXVALUESETNAME;
data['FORMAT_TYPE'] = this.fORMATTYPE;
data['FORMAT_TYPE_DSP'] = this.fORMATTYPEDSP;
data['LONGLIST_FLAG'] = this.lONGLISTFLAG;
data['MAXIMUM_SIZE'] = this.mAXIMUMSIZE;
data['MAXIMUM_VALUE'] = this.mAXIMUMVALUE;
data['MINIMUM_VALUE'] = this.mINIMUMVALUE;
data['MOBILE_ENABLED'] = this.mOBILEENABLED;
data['NUMBER_PRECISION'] = this.nUMBERPRECISION;
data['NUMERIC_MODE_ENABLED_FLAG'] = this.nUMERICMODEENABLEDFLAG;
data['PARENT_SEGMENTS_DV'] = this.pARENTSEGMENTSDV;
if (this.pARENTSEGMENTSDVSplited != null) {
data['PARENT_SEGMENTS_DV_Splited'] =
this.pARENTSEGMENTSDVSplited!.map((v) => v.toJson()).toList();
}
data['PARENT_SEGMENTS_VS'] = this.pARENTSEGMENTSVS;
if (this.pARENTSEGMENTSVSSplitedVS != null) {
data['PARENT_SEGMENTS_VS_SplitedVS'] =
this.pARENTSEGMENTSVSSplitedVS!.map((v) => v.toJson()).toList();
}
data['READ_ONLY'] = this.rEADONLY;
data['REQUIRED_FLAG'] = this.rEQUIREDFLAG;
data['SEGMENT_NAME'] = this.sEGMENTNAME;
data['SEGMENT_PROMPT'] = this.sEGMENTPROMPT;
data['SEGMENT_SEQ_NUM'] = this.sEGMENTSEQNUM;
data['UPPERCASE_ONLY_FLAG'] = this.uPPERCASEONLYFLAG;
data['USED_FLAG'] = this.uSEDFLAG;
data['VALIDATION_TYPE'] = this.vALIDATIONTYPE;
data['VALIDATION_TYPE_DSP'] = this.vALIDATIONTYPEDSP;
return data;
}
}
// class ESERVICESDV {
// String? pIDCOLUMNNAME;
// String? pRETURNMSG;
// String? pRETURNSTATUS;
// String? pVALUECOLUMNNAME;
//
// ESERVICESDV(
// {this.pIDCOLUMNNAME,
// this.pRETURNMSG,
// this.pRETURNSTATUS,
// this.pVALUECOLUMNNAME});
//
// ESERVICESDV.fromJson(Map<String, dynamic> json) {
// pIDCOLUMNNAME = json['P_ID_COLUMN_NAME'];
// pRETURNMSG = json['P_RETURN_MSG'];
// pRETURNSTATUS = json['P_RETURN_STATUS'];
// pVALUECOLUMNNAME = json['P_VALUE_COLUMN_NAME'];
// }
//
// Map<String, dynamic> toJson() {
// final Map<String, dynamic> data = new Map<String, dynamic>();
// data['P_ID_COLUMN_NAME'] = this.pIDCOLUMNNAME;
// data['P_RETURN_MSG'] = this.pRETURNMSG;
// data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
// data['P_VALUE_COLUMN_NAME'] = this.pVALUECOLUMNNAME;
// return data;
// }
// }
//
// class ESERVICESVS {
// String? dESCRIPTION;
// int? fROMROWNUM;
// String? iDCOLUMNNAME;
// int? nOOFROWS;
// int? rOWNUM;
// int? tOROWNUM;
// String? vALUECOLUMNNAME;
//
// ESERVICESVS(
// {this.dESCRIPTION,
// this.fROMROWNUM,
// this.iDCOLUMNNAME,
// this.nOOFROWS,
// this.rOWNUM,
// this.tOROWNUM,
// this.vALUECOLUMNNAME});
//
// ESERVICESVS.fromJson(Map<String, dynamic> json) {
// dESCRIPTION = json['DESCRIPTION'];
// fROMROWNUM = json['FROM_ROW_NUM'];
// iDCOLUMNNAME = json['ID_COLUMN_NAME'];
// nOOFROWS = json['NO_OF_ROWS'];
// rOWNUM = json['ROW_NUM'];
// tOROWNUM = json['TO_ROW_NUM'];
// vALUECOLUMNNAME = json['VALUE_COLUMN_NAME'];
// }
//
// Map<String, dynamic> toJson() {
// final Map<String, dynamic> data = new Map<String, dynamic>();
// data['DESCRIPTION'] = this.dESCRIPTION;
// data['FROM_ROW_NUM'] = this.fROMROWNUM;
// data['ID_COLUMN_NAME'] = this.iDCOLUMNNAME;
// data['NO_OF_ROWS'] = this.nOOFROWS;
// data['ROW_NUM'] = this.rOWNUM;
// data['TO_ROW_NUM'] = this.tOROWNUM;
// data['VALUE_COLUMN_NAME'] = this.vALUECOLUMNNAME;
// return data;
// }
// }

@ -0,0 +1,88 @@
class GetContactColsStructureList {
String? aPPLICATIONCOLUMNNAME;
String? dATATYPE;
String? dISPLAYFLAG;
int? gROUPNUM;
int? mAXIMUMSIZE;
String? oBJECTNAME;
String? oBJECTTYPE;
List<ObjectValuesList>? objectValuesList;
String? rEQUIREDFLAG;
String? sEGMENTPROMPT;
int? sEGMENTSEQNUM;
GetContactColsStructureList(
{this.aPPLICATIONCOLUMNNAME,
this.dATATYPE,
this.dISPLAYFLAG,
this.gROUPNUM,
this.mAXIMUMSIZE,
this.oBJECTNAME,
this.oBJECTTYPE,
this.objectValuesList,
this.rEQUIREDFLAG,
this.sEGMENTPROMPT,
this.sEGMENTSEQNUM});
GetContactColsStructureList.fromJson(Map<String, dynamic> json) {
aPPLICATIONCOLUMNNAME = json['APPLICATION_COLUMN_NAME'];
dATATYPE = json['DATATYPE'];
dISPLAYFLAG = json['DISPLAY_FLAG'];
gROUPNUM = json['GROUP_NUM'];
mAXIMUMSIZE = json['MAXIMUM_SIZE'];
oBJECTNAME = json['OBJECT_NAME'];
oBJECTTYPE = json['OBJECT_TYPE'];
if (json['ObjectValuesList'] != null) {
objectValuesList = <ObjectValuesList>[];
json['ObjectValuesList'].forEach((v) {
objectValuesList!.add(new ObjectValuesList.fromJson(v));
});
}
rEQUIREDFLAG = json['REQUIRED_FLAG'];
sEGMENTPROMPT = json['SEGMENT_PROMPT'];
sEGMENTSEQNUM = json['SEGMENT_SEQ_NUM'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['APPLICATION_COLUMN_NAME'] = this.aPPLICATIONCOLUMNNAME;
data['DATATYPE'] = this.dATATYPE;
data['DISPLAY_FLAG'] = this.dISPLAYFLAG;
data['GROUP_NUM'] = this.gROUPNUM;
data['MAXIMUM_SIZE'] = this.mAXIMUMSIZE;
data['OBJECT_NAME'] = this.oBJECTNAME;
data['OBJECT_TYPE'] = this.oBJECTTYPE;
if (this.objectValuesList != null) {
data['ObjectValuesList'] =
this.objectValuesList!.map((v) => v.toJson()).toList();
}
data['REQUIRED_FLAG'] = this.rEQUIREDFLAG;
data['SEGMENT_PROMPT'] = this.sEGMENTPROMPT;
data['SEGMENT_SEQ_NUM'] = this.sEGMENTSEQNUM;
return data;
}
}
class ObjectValuesList {
String? cODE;
String? dESCRIPTION;
String? mEANING;
ObjectValuesList({this.cODE, this.dESCRIPTION, this.mEANING});
ObjectValuesList.fromJson(Map<String, dynamic> json) {
cODE = json['CODE'];
dESCRIPTION = json['DESCRIPTION'];
mEANING = json['MEANING'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['CODE'] = this.cODE;
data['DESCRIPTION'] = this.dESCRIPTION;
data['MEANING'] = this.mEANING;
return data;
}
}

@ -0,0 +1,54 @@
class GetContactDetailsList {
String? aPPLICATIONCOLUMNNAME;
String? dATATYPE;
String? dATEVALUE;
String? dISPLAYFLAG;
int? gROUPNUM;
int? nUMBERVALUE;
String? sEGMENTPROMPT;
int? sEGMENTSEQNUM;
String? sEGMENTVALUEDSP;
String? vARCHAR2VALUE;
GetContactDetailsList(
{this.aPPLICATIONCOLUMNNAME,
this.dATATYPE,
this.dATEVALUE,
this.dISPLAYFLAG,
this.gROUPNUM,
this.nUMBERVALUE,
this.sEGMENTPROMPT,
this.sEGMENTSEQNUM,
this.sEGMENTVALUEDSP,
this.vARCHAR2VALUE});
GetContactDetailsList.fromJson(Map<String, dynamic> json) {
aPPLICATIONCOLUMNNAME = json['APPLICATION_COLUMN_NAME'];
dATATYPE = json['DATATYPE'];
dATEVALUE = json['DATE_VALUE'];
dISPLAYFLAG = json['DISPLAY_FLAG'];
gROUPNUM = json['GROUP_NUM'];
nUMBERVALUE = json['NUMBER_VALUE'];
sEGMENTPROMPT = json['SEGMENT_PROMPT'];
sEGMENTSEQNUM = json['SEGMENT_SEQ_NUM'];
sEGMENTVALUEDSP = json['SEGMENT_VALUE_DSP'];
vARCHAR2VALUE = json['VARCHAR2_VALUE'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['APPLICATION_COLUMN_NAME'] = this.aPPLICATIONCOLUMNNAME;
data['DATATYPE'] = this.dATATYPE;
data['DATE_VALUE'] = this.dATEVALUE;
data['DISPLAY_FLAG'] = this.dISPLAYFLAG;
data['GROUP_NUM'] = this.gROUPNUM;
data['NUMBER_VALUE'] = this.nUMBERVALUE;
data['SEGMENT_PROMPT'] = this.sEGMENTPROMPT;
data['SEGMENT_SEQ_NUM'] = this.sEGMENTSEQNUM;
data['SEGMENT_VALUE_DSP'] = this.sEGMENTVALUEDSP;
data['VARCHAR2_VALUE'] = this.vARCHAR2VALUE;
return data;
}
}

@ -92,6 +92,13 @@ class _RequestSubmitScreenState extends State<RequestSubmitScreen> {
params!.pItemId,
params!.transactionId,
);
} else if(params!.approvalFlag == 'family_member') {
await ProfileApiClient().getApproves(
"SUBMIT",
comments.text,
params!.transactionId!.toInt(),
params!.pItemId.toString(),
);
} else {
await MyAttendanceApiClient().startEitApprovalProcess(
"SUBMIT",

@ -0,0 +1,98 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/profile_api_client.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/config/routes.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/get_approves_list_model.dart';
import 'package:mohem_flutter_app/models/get_contact_dff_structure_list.dart';
import 'package:mohem_flutter_app/models/profile/basic_details_dff_structure.dart';
import 'package:mohem_flutter_app/models/profile/get_contact_clos_structure_list.dart';
import 'package:mohem_flutter_app/models/profile/get_contact_details_list.dart';
import 'package:mohem_flutter_app/models/profile/submit_contact_transaction_list_model.dart';
import 'package:mohem_flutter_app/ui/misc/request_submit_screen.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:mohem_flutter_app/widgets/dynamic_forms/dynamic_textfield_widget.dart';
class AddUpdateFamilyMember extends StatefulWidget {
const AddUpdateFamilyMember({Key? key}) : super(key: key);
@override
_AddUpdateFamilyMemberState createState() => _AddUpdateFamilyMemberState();
}
class _AddUpdateFamilyMemberState extends State<AddUpdateFamilyMember> {
List<GetBasicDetDffStructureList?> getBasicDetDffStructureList = [];
List<GetContactColsStructureList?> getContactColsStructureList = [];
List<GetContactDffStructureList?> getContactDffStructureList = [];
List<GetContactDetailsList?> getContactDetailsList = [];
dynamic args;
@override
void initState() {
//
super.initState();
}
void callAddFamilyMember() async {
try {
Utils.showLoading(context);
getBasicDetDffStructureList = await ProfileApiClient().getBasicDetDffStructure();
getContactColsStructureList = await ProfileApiClient().getContactColsStructureList();
getContactDffStructureList = await ProfileApiClient().getContactDffStructureList();
Utils.hideLoading(context);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
void callUpdateFamilyMember() async {
try {
Utils.showLoading(context);
getContactDetailsList = await ProfileApiClient().getContactDetailsList(args['relationID']);
getBasicDetDffStructureList = await ProfileApiClient().getBasicDetDffStructure();
getContactColsStructureList = await ProfileApiClient().getContactColsStructureList();
getContactDffStructureList = await ProfileApiClient().getContactDffStructureList();
Utils.hideLoading(context);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
@override
Widget build(BuildContext context) {
args= ModalRoute.of(context)!.settings.arguments;
callUpdateFamilyMember();
return Scaffold(
appBar: AppBarWidget(
context,
title: LocaleKeys.profile_familyDetails.tr(),
),
backgroundColor: MyColors.backgroundColor,
body: args['flag']== 1
? Column(
children: [
],
)
: args['flag'] == 2
? Column(
children: [
"update".toText16(color: MyColors.blackColor),
],
)
: Container(),
);
}
}

@ -7,7 +7,6 @@ import 'package:mohem_flutter_app/config/routes.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/get_approves_list_model.dart';
import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart';
import 'package:mohem_flutter_app/models/profile/submit_contact_transaction_list_model.dart';
import 'package:mohem_flutter_app/ui/misc/request_submit_screen.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
@ -29,6 +28,7 @@ class _DeleteFamilyMemberState extends State<DeleteFamilyMember> {
// int? contactRelationId;
String? date="MM/DD/YYYY";
String? datePar;
// String? itemKey;
SubmitContactTransactionList? submitContactTransactionList;
GetApprovesList? getApprovesList;
@ -45,10 +45,11 @@ class _DeleteFamilyMemberState extends State<DeleteFamilyMember> {
Utils.showLoading(context);
submitContactTransactionList = await ProfileApiClient().submetConatctTransaction(pFunctionName.toString(), actionType.toString(), widget.relationId!.toInt(), datePar.toString());
var transactionId = submitContactTransactionList!.pTRANSACTIONID;
getApprovesList = await ProfileApiClient().getApproves(transactionId!.toInt());
Navigator.pushNamed(context, AppRoutes.requestSubmitScreen,
arguments: RequestSubmitScreenParams(LocaleKeys.profile_familyDetails.tr(), submitContactTransactionList!.pTRANSACTIONID!.toInt(), submitContactTransactionList!.pITEMKEY!));
var itemKey = submitContactTransactionList!.pITEMKEY;
Utils.hideLoading(context);
// getApprovesList = await ProfileApiClient().getApproves(transactionId!.toInt(), itemKey.toString() );
Navigator.pushNamed(context, AppRoutes.requestSubmitScreen,arguments: RequestSubmitScreenParams(LocaleKeys.profile_familyDetails.tr(), transactionId!.toInt(), itemKey.toString(), 'family_member'));
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
@ -61,7 +62,7 @@ class _DeleteFamilyMemberState extends State<DeleteFamilyMember> {
return Scaffold(
appBar: AppBarWidget(
context,
title: "Dependents And Beneficiaries",
title: LocaleKeys.profile_familyDetails.tr(),
),
backgroundColor: MyColors.backgroundColor,
bottomSheet: footer(),
@ -77,10 +78,10 @@ class _DeleteFamilyMemberState extends State<DeleteFamilyMember> {
date = DateFormat('yyyy/MM/dd').format(dateValue);
datePar = DateFormat('yyyy/MM/dd hh:mm:ss').format(dateValue);
setState(() {});
if (date !=null) {
print(datePar);
deleteFamilyMember(datePar);
}
// if (date !=null) {
// print(datePar);
// deleteFamilyMember(datePar);
// }
},
).paddingOnly(bottom: 12)
],
@ -93,7 +94,7 @@ class _DeleteFamilyMemberState extends State<DeleteFamilyMember> {
children: [
Container(
color: MyColors.gradiantEndColor,
// margin: EdgeInsets.only(left: 50,right: 20),
margin: EdgeInsets.only(bottom: 20, top: 20),
padding: EdgeInsets.only(left: 50, right: 50),
child: TextButton(
style: TextButton.styleFrom(

@ -1,8 +1,3 @@
import 'package:easy_localization/src/public_ext.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/profile_api_client.dart';
@ -30,15 +25,14 @@ class FamilyMembers extends StatefulWidget {
}
class _FamilyMembersState extends State<FamilyMembers> {
List<GetEmployeeContactsList> getEmployeeContactsList = [];
int? relationId;
int? flag;
@override
void initState() {
super.initState();
getEmployeeContacts();
}
void getEmployeeContacts() async {
@ -53,7 +47,6 @@ class _FamilyMembersState extends State<FamilyMembers> {
}
}
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBarWidget(
@ -61,155 +54,145 @@ class _FamilyMembersState extends State<FamilyMembers> {
title: LocaleKeys.profile_familyDetails.tr(),
),
backgroundColor: MyColors.backgroundColor,
bottomSheet:footer(),
bottomSheet: footer(),
body: Container(
width: MediaQuery.of(context).size.width,
child: getEmployeeContactsList.length != 0
? SingleChildScrollView(
scrollDirection: Axis.vertical,
child: Column(
children: <Widget>[
ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
physics: ScrollPhysics(),
itemCount: getEmployeeContactsList.length,
itemBuilder: (context, index) {
return Container(
child: Column(
children: [
Container(
width: double.infinity,
margin: EdgeInsets.only(top: 20, left: 21, right: 21,),
padding: EdgeInsets.only(left: 14, right: 14,top: 13, ),
height: 110,
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.5),
spreadRadius: 5,
blurRadius: 26,
offset: Offset(0, 3),
),
],
color: Colors.white,
borderRadius: BorderRadius.circular(10.0),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"${getEmployeeContactsList[index].cONTACTNAME}".toText16(color: MyColors.blackColor),
"${getEmployeeContactsList[index].rELATIONSHIP}".toText11(isBold: true, color: MyColors.textMixColor),
SizedBox(height: 5,),
Divider(
color: MyColors.lightGreyEFColor,
height: 20,
thickness: 1,
indent: 0,
endIndent: 0,
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
Container(
child: InkWell(
onTap: () {
showUpdateAlertDialog(context);
},
child: RichText(
text: TextSpan(
children: [
WidgetSpan(
child: Icon(
Icons.edit,
size: 15,
color: MyColors.grey67Color,
),
),
TextSpan(
text: LocaleKeys.update.tr(),
style: TextStyle(
color: MyColors.grey67Color,
fontSize: 12,
fontWeight: FontWeight.bold,
),
),
],
),
),
)
child: getEmployeeContactsList.length != 0
? SingleChildScrollView(
scrollDirection: Axis.vertical,
child: Column(
children: <Widget>[
ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
physics: ScrollPhysics(),
itemCount: getEmployeeContactsList.length,
itemBuilder: (context, index) {
return Container(
child: Column(
children: [
Container(
width: double.infinity,
margin: EdgeInsets.only(
top: 20,
left: 21,
right: 21,
),
padding: EdgeInsets.only(
left: 14,
right: 14,
top: 13,
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8),
child: SizedBox(
child: Container(
width: 3,
color: MyColors.lightGreyEFColor,
height: 110,
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
color: Colors.grey.withOpacity(0.5),
spreadRadius: 5,
blurRadius: 26,
offset: Offset(0, 3),
),
),
],
color: Colors.white,
borderRadius: BorderRadius.circular(10.0),
),
Container(
child: InkWell(
onTap: () {
relationId = getEmployeeContactsList[index]!.cONTACTRELATIONSHIPID!.toInt();
showRemoveAlertDialog(context, relationId!.toInt());
},
child: RichText(
text: TextSpan(
children: [
WidgetSpan(
child: Icon(
Icons.delete,
size: 15,
color: Color(0x99FF0000),
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
"${getEmployeeContactsList[index].cONTACTNAME}".toText16(color: MyColors.blackColor),
"${getEmployeeContactsList[index].rELATIONSHIP}".toText11(isBold: true, color: MyColors.textMixColor),
SizedBox(
height: 5,
),
Divider(
color: MyColors.lightGreyEFColor,
height: 20,
thickness: 1,
indent: 0,
endIndent: 0,
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: <Widget>[
Container(
child: InkWell(
onTap: () {
relationId = getEmployeeContactsList[index]!.cONTACTRELATIONSHIPID!.toInt();
showUpdateAlertDialog(context, relationId!.toInt(), 2);
},
child: RichText(
text: TextSpan(
children: [
WidgetSpan(
child: Icon(
Icons.edit,
size: 15,
color: MyColors.grey67Color,
),
),
),
TextSpan(
text:LocaleKeys.remove.tr(),
style: TextStyle(
color: MyColors.DarkRedColor,
fontSize: 12,
fontWeight: FontWeight.bold,
TextSpan(
text: LocaleKeys.update.tr(),
style: TextStyle(
color: MyColors.grey67Color,
fontSize: 12,
fontWeight: FontWeight.bold,
),
),
),
],
],
),
),
)),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 8),
child: SizedBox(
child: Container(
width: 3,
color: MyColors.lightGreyEFColor,
),
),
),
)
),
// ElevatedButton.icon(
// icon: Icon(
// Icons.delete,
// size: 15,
// color: Color(0x99FF0000),
// ),
// style: ElevatedButton.styleFrom(
// shadowColor: Colors.white,
// primary: Colors.white,
// ),
// label: "remove".toText12(color: MyColors.DarkRedColor),
// onPressed: (){},
// ),
],
),
]
),
),
Container(
child: InkWell(
onTap: () {
relationId = getEmployeeContactsList[index]!.cONTACTRELATIONSHIPID!.toInt();
showRemoveAlertDialog(context, relationId!.toInt());
},
child: RichText(
text: TextSpan(
children: [
WidgetSpan(
child: Icon(
Icons.delete,
size: 15,
color: Color(0x99FF0000),
),
),
TextSpan(
text: LocaleKeys.remove.tr(),
style: TextStyle(
color: MyColors.DarkRedColor,
fontSize: 12,
fontWeight: FontWeight.bold,
),
),
],
),
),
)),
],
),
]),
),
],
));
})
],
)
);
})
],
),
):Container(),
// SizedBox(height: 20),
)
);
),
)
: Container(),
// SizedBox(height: 20),
));
}
footer(){
footer() {
return Container(
decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(10),
@ -219,27 +202,35 @@ class _FamilyMembersState extends State<FamilyMembers> {
],
),
child: DefaultButton("Add New Family Member", () async {
Navigator.pushNamed(context, AppRoutes.addUpdateFamilyMember, arguments: {"relationID":relationId, "flag":1});
// context.setLocale(const Locale("en", "US")); // to change Loacle
Profile();
// Profile();
}).insideContainer,
);
}
showUpdateAlertDialog(BuildContext context) {
showUpdateAlertDialog(BuildContext context, int relationId, int flag) {
Widget cancelButton = TextButton(
child: Text(LocaleKeys.cancel.tr(),),
onPressed: () {
child: Text(
LocaleKeys.cancel.tr(),
),
onPressed: () {
Navigator.pop(context);
},
);
Widget continueButton = TextButton(
child: Text(LocaleKeys.ok.tr(),),
onPressed: () {
continueDynamicForms();
child: Text(
LocaleKeys.ok.tr(),
),
onPressed: () {
Navigator.pushNamed(context, AppRoutes.addUpdateFamilyMember, arguments: {"relationID":relationId, "flag":flag}, );
// continueDynamicForms();
},
);
AlertDialog alert = AlertDialog(
title: Text(LocaleKeys.confirm.tr(),),
title: Text(
LocaleKeys.confirm.tr(),
),
content: Text("Are You Sure You Want to Update this Member?"),
actions: [
cancelButton,
@ -253,23 +244,30 @@ class _FamilyMembersState extends State<FamilyMembers> {
},
);
}
showRemoveAlertDialog(BuildContext context,int relationId) {
showRemoveAlertDialog(BuildContext context, int relationId) {
Widget cancelButton = TextButton(
child: Text(LocaleKeys.cancel.tr(),),
onPressed: () {
child: Text(
LocaleKeys.cancel.tr(),
),
onPressed: () {
Navigator.pop(context);
},
);
Widget continueButton = TextButton(
child: Text(LocaleKeys.ok.tr(),),
onPressed: () {
// var relationId = getEmployeeContactsList[index]!.cONTACTRELATIONSHIPID!.toInt();
child: Text(
LocaleKeys.ok.tr(),
),
onPressed: () {
// var relationId = getEmployeeContactsList[index]!.cONTACTRELATIONSHIPID!.toInt();
Navigator.pushNamed(context, AppRoutes.deleteFamilyMember, arguments: relationId);
// continueDynamicForms();
// continueDynamicForms();
},
);
AlertDialog alert = AlertDialog(
title: Text(LocaleKeys.confirm.tr(),),
title: Text(
LocaleKeys.confirm.tr(),
),
content: Text("Are You Sure You Want to Remove this Member?"),
actions: [
cancelButton,
@ -284,10 +282,9 @@ class _FamilyMembersState extends State<FamilyMembers> {
);
}
void continueDynamicForms() {
Navigator.pushNamed(context, AppRoutes.addDynamicInputProfile,
arguments: DynamicFamilyMembersParams(LocaleKeys.profile_familyDetails.tr(), getEmployeeContactsList: getEmployeeContactsList));
}
// void continueDynamicForms() {
// Navigator.pushNamed(context, AppRoutes.addDynamicInputProfile,
// arguments: DynamicFamilyMembersParams(LocaleKeys.profile_familyDetails.tr(), getEmployeeContactsList: getEmployeeContactsList));
// }
}

Loading…
Cancel
Save