Merge branch 'master' into development_haroon
# Conflicts: # lib/config/routes.dart # lib/models/generic_response_model.dart # lib/ui/landing/widget/app_drawer.dart # lib/ui/screens/announcements/announcement_details.dart # pubspec.yamlfaiz_marathon_signalR_critical
commit
1719c7029e
Binary file not shown.
|
After Width: | Height: | Size: 32 KiB |
@ -0,0 +1,113 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<!-- Generator: Adobe Illustrator 19.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
||||
viewBox="0 0 64 64" style="enable-background:new 0 0 64 64;" xml:space="preserve">
|
||||
<g>
|
||||
<rect x="38" y="23" width="2" height="5"/>
|
||||
<rect x="42" y="23" width="2" height="5"/>
|
||||
<rect x="38" y="30" width="2" height="2"/>
|
||||
<rect x="42" y="30" width="2" height="2"/>
|
||||
<rect x="31" y="34" width="2" height="2"/>
|
||||
<rect x="26" y="54" width="2" height="2"/>
|
||||
<rect x="42" y="34" width="2" height="2"/>
|
||||
<rect x="38" y="38" width="2" height="2"/>
|
||||
<rect x="42" y="38" width="2" height="2"/>
|
||||
<path d="M2,2h3V0H1C0.448,0,0,0.448,0,1v4h2V2z"/>
|
||||
<path d="M63,0h-4v2h3v3h2V1C64,0.448,63.552,0,63,0z"/>
|
||||
<path d="M2,59H0v4c0,0.552,0.448,1,1,1h4v-2H2V59z"/>
|
||||
<path d="M62,62h-3v2h4c0.552,0,1-0.448,1-1v-4h-2V62z"/>
|
||||
<path d="M4,5v12c0,0.552,0.448,1,1,1h12c0.552,0,1-0.448,1-1V5c0-0.552-0.448-1-1-1H5C4.448,4,4,4.448,4,5z M6,6h10v10H6V6z"/>
|
||||
<path d="M13,8H9C8.448,8,8,8.448,8,9v4c0,0.552,0.448,1,1,1h4c0.552,0,1-0.448,1-1V9C14,8.448,13.552,8,13,8z M12,12h-2v-2h2V12z"
|
||||
/>
|
||||
<path d="M47,18h12c0.552,0,1-0.448,1-1V5c0-0.552-0.448-1-1-1H47c-0.552,0-1,0.448-1,1v12C46,17.552,46.448,18,47,18z M48,6h10v10
|
||||
H48V6z"/>
|
||||
<path d="M55,8h-4c-0.552,0-1,0.448-1,1v4c0,0.552,0.448,1,1,1h4c0.552,0,1-0.448,1-1V9C56,8.448,55.552,8,55,8z M54,12h-2v-2h2V12z
|
||||
"/>
|
||||
<path d="M17,46H5c-0.552,0-1,0.448-1,1v12c0,0.552,0.448,1,1,1h12c0.552,0,1-0.448,1-1V47C18,46.448,17.552,46,17,46z M16,58H6V48
|
||||
h10V58z"/>
|
||||
<path d="M9,56h4c0.552,0,1-0.448,1-1v-4c0-0.552-0.448-1-1-1H9c-0.552,0-1,0.448-1,1v4C8,55.552,8.448,56,9,56z M10,52h2v2h-2V52z"
|
||||
/>
|
||||
<path d="M44,19h-7V7h-2v13c0,0.552,0.448,1,1,1h8V19z"/>
|
||||
<rect x="22" y="12" width="7" height="2"/>
|
||||
<rect x="26" y="8" width="7" height="2"/>
|
||||
<rect x="4" y="19" width="2" height="9"/>
|
||||
<path d="M18,25H8v2h9v4h2v-5C19,25.448,18.552,25,18,25z"/>
|
||||
<rect x="9" y="20" width="2" height="2"/>
|
||||
<rect x="21" y="18" width="2" height="8"/>
|
||||
<rect x="21" y="28" width="9" height="2"/>
|
||||
<path d="M61,29h-2v10h-3v2h4c0.552,0,1-0.448,1-1V29z"/>
|
||||
<rect x="26" y="18" width="2" height="2"/>
|
||||
<rect x="4" y="33" width="2" height="8"/>
|
||||
<rect x="4" y="42" width="9" height="2"/>
|
||||
<path d="M50,28h2v-4c0-0.552-0.448-1-1-1h-5v2h4V28z"/>
|
||||
<rect x="9" y="33" width="2" height="2"/>
|
||||
<rect x="20" y="32" width="2" height="8"/>
|
||||
<rect x="20" y="42" width="9" height="2"/>
|
||||
<rect x="8" y="38" width="9" height="2"/>
|
||||
<rect x="21" y="52" width="2" height="4"/>
|
||||
<rect x="20" y="48" width="9" height="2"/>
|
||||
<path d="M36,44v-5c0-0.552-0.448-1-1-1H25v2h9v4H36z"/>
|
||||
<rect x="26" y="32" width="2" height="2"/>
|
||||
<rect x="15" y="34" width="2" height="2"/>
|
||||
<rect x="59" y="53" width="2" height="7"/>
|
||||
<rect x="54" y="58" width="3" height="2"/>
|
||||
<rect x="54" y="52" width="2" height="4"/>
|
||||
<path d="M61,44c0-0.552-0.448-1-1-1H49v2h10v6h2V44z"/>
|
||||
<path d="M48,56v-5c0-0.552-0.448-1-1-1H36v2h10v4H48z"/>
|
||||
<rect x="50" y="47" width="7" height="2"/>
|
||||
<rect x="20" y="58" width="7" height="2"/>
|
||||
<rect x="30" y="51" width="2" height="9"/>
|
||||
<rect x="32" y="46" width="4" height="2"/>
|
||||
<path d="M47,36h5v-2h-4v-6h-2v7C46,35.552,46.448,36,47,36z"/>
|
||||
<rect x="50" y="30" width="5" height="2"/>
|
||||
<rect x="54" y="20" width="3" height="2"/>
|
||||
<rect x="59" y="20" width="2" height="5"/>
|
||||
<rect x="54" y="25" width="2" height="2"/>
|
||||
<path d="M39,17h4c0.552,0,1-0.448,1-1V3h-2v12h-3V17z"/>
|
||||
<path d="M24,5h15V3H23c-0.552,0-1,0.448-1,1v5h2V5z"/>
|
||||
<path d="M25,24h7c0.552,0,1-0.448,1-1v-8h-2v7h-6V24z"/>
|
||||
<rect x="34" y="23" width="2" height="4"/>
|
||||
<rect x="36" y="54" width="7" height="2"/>
|
||||
<rect x="36" y="58" width="9" height="2"/>
|
||||
<path d="M50,58h-2v2h3c0.552,0,1-0.448,1-1v-8h-2V58z"/>
|
||||
<rect x="16" y="42" width="2" height="2"/>
|
||||
<rect x="39" y="42" width="4" height="2"/>
|
||||
<rect x="46" y="38" width="2" height="3"/>
|
||||
<rect x="45" y="43" width="2" height="2"/>
|
||||
<rect x="39" y="46" width="3" height="2"/>
|
||||
<rect x="50" y="38" width="2" height="2"/>
|
||||
<rect x="54" y="34" width="3" height="2"/>
|
||||
<rect x="35" y="34" width="5" height="2"/>
|
||||
<rect x="34" y="29" width="2" height="3"/>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
<g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.3 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 634 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 3.4 KiB |
@ -0,0 +1,68 @@
|
||||
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/monthly_pay_slip/get_deductions_List_model.dart';
|
||||
import 'package:mohem_flutter_app/models/monthly_pay_slip/get_earnings_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/monthly_pay_slip/get_pay_slip_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/monthly_pay_slip/get_payment_information_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/monthly_pay_slip/get_summary_of_payment_list_model.dart';
|
||||
|
||||
class MonthlyPaySlipApiClient {
|
||||
static final MonthlyPaySlipApiClient _instance = MonthlyPaySlipApiClient._internal();
|
||||
|
||||
MonthlyPaySlipApiClient._internal();
|
||||
|
||||
factory MonthlyPaySlipApiClient() => _instance;
|
||||
|
||||
Future<List<GetPayslipList>> getPaySlip() async {
|
||||
String url = "${ApiConsts.erpRest}GET_PAYSLIP";
|
||||
Map<String, dynamic> postParams = {"P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": -999};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
print(postParams);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getPayslipList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<GetSummaryOfPaymentList>> getSummaryOfPayment(int pActionContextID) async {
|
||||
String url = "${ApiConsts.erpRest}GET_SUMMARY_OF_PAYMENT";
|
||||
Map<String, dynamic> postParams = {"P_ACTION_CONTEXT_ID": pActionContextID};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getSummaryOfPaymentList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<GetPaymentInformationList>> getPaymentInformation(int pActionContextID) async {
|
||||
String url = "${ApiConsts.erpRest}GET_PAYMENT_INFORMATION";
|
||||
Map<String, dynamic> postParams = {"P_ACTION_CONTEXT_ID": pActionContextID};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getPaymentInformationList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<GetDeductionsList>> getDeductions(int pActionContextID) async {
|
||||
String url = "${ApiConsts.erpRest}GET_DEDUCTIONS";
|
||||
Map<String, dynamic> postParams = {"P_ACTION_CONTEXT_ID": pActionContextID, "P_PAGE_LIMIT": 100, "P_PAGE_NUM": 1};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getDeductionsList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<GetEarningsList>> getEarnings(int pActionContextID) async {
|
||||
String url = "${ApiConsts.erpRest}GET_EARNINGS";
|
||||
Map<String, dynamic> postParams = {"P_ACTION_CONTEXT_ID": pActionContextID, "P_PAGE_LIMIT": 100, "P_PAGE_NUM": 1};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getEarningsList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
}
|
||||
@ -1,34 +0,0 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:mohem_flutter_app/classes/consts.dart';
|
||||
import 'package:mohem_flutter_app/models/content_info_model.dart';
|
||||
import 'package:mohem_flutter_app/models/member_login_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/surah_model.dart';
|
||||
|
||||
import 'api_client.dart';
|
||||
|
||||
class TangheemUserApiClient {
|
||||
static final TangheemUserApiClient _instance = TangheemUserApiClient._internal();
|
||||
|
||||
TangheemUserApiClient._internal();
|
||||
|
||||
factory TangheemUserApiClient() => _instance;
|
||||
|
||||
// Future<SurahModel> getSurahs() async {
|
||||
// String url = "${ApiConsts.tangheemUsers}AlSuar_Get";
|
||||
// var postParams = {};
|
||||
// return await ApiClient().postJsonForObject((json) => SurahModel.fromJson(json), url, postParams);
|
||||
// }
|
||||
//
|
||||
// Future<MemberModel> getMembers() async {
|
||||
// String url = "${ApiConsts.tangheemUsers}Committee_Get";
|
||||
// var postParams = {};
|
||||
// return await ApiClient().postJsonForObject((json) => MemberModel.fromJson(json), url, postParams);
|
||||
// }
|
||||
//
|
||||
// Future<ContentInfoModel> getContentInfo(int contentId) async {
|
||||
// String url = "${ApiConsts.tangheemUsers}ContentInfo_Get";
|
||||
// var postParams = {"contentTypeId": contentId};
|
||||
// return await ApiClient().postJsonForObject((json) => ContentInfoModel.fromJson(json), url, postParams);
|
||||
// }
|
||||
}
|
||||
@ -0,0 +1,78 @@
|
||||
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_item_type_notifications_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/vacation_rule/get_notification_reassign_mode_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/vacation_rule/get_vacation_rules_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/vacation_rule/respond_attributes_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/vacation_rule/vr_item_types_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/vacation_rule/wf_look_up_list_model.dart';
|
||||
|
||||
class VacationRuleApiClient {
|
||||
static final VacationRuleApiClient _instance = VacationRuleApiClient._internal();
|
||||
|
||||
VacationRuleApiClient._internal();
|
||||
|
||||
factory VacationRuleApiClient() => _instance;
|
||||
|
||||
Future<List<GetVacationRulesList>> getVacationRules() async {
|
||||
String url = "${ApiConsts.erpRest}GET_VACATION_RULES";
|
||||
Map<String, dynamic> postParams = {"P_PAGE_LIMIT": 50, "P_PAGE_NUM": 1};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getVacationRulesList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<VrItemTypesList>> getVrItemTypes() async {
|
||||
String url = "${ApiConsts.erpRest}GET_VR_ITEM_TYPES";
|
||||
Map<String, dynamic> postParams = {};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.vrItemTypesList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<GetItemTypeNotificationsList>> getItemTypeNotifications(String pItemType) async {
|
||||
String url = "${ApiConsts.erpRest}GET_ITEM_TYPE_NOTIFICATIONS";
|
||||
Map<String, dynamic> postParams = {"P_ITEM_TYPE": pItemType};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getItemTypeNotificationsList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<GetNotificationReassignModeList>> getNotificationReassignMode() async {
|
||||
String url = "${ApiConsts.erpRest}GET_NOTIFICATION_REASSIGN_MODE";
|
||||
Map<String, dynamic> postParams = {};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.getNotificationReassignModeList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<RespondAttributesList>> getRespondAttributes(String pItemType, String pNotificationName) async {
|
||||
String url = "${ApiConsts.erpRest}GET_RESPOND_ATTRIBUTES";
|
||||
Map<String, dynamic> postParams = {"P_ITEM_TYPE": pItemType, "P_NOTIFICATION_NAME": pNotificationName};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.respondAttributesList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
|
||||
Future<List<WFLookUpList>> getWfLookup(String pLookupType) async {
|
||||
String url = "${ApiConsts.erpRest}GET_WF_LOOKUP";
|
||||
Map<String, dynamic> postParams = {"P_LOOKUP_TYPE": pLookupType};
|
||||
postParams.addAll(AppState().postParamsJson);
|
||||
return await ApiClient().postJsonForObject((json) {
|
||||
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
|
||||
return responseData.wFLookUpList ?? [];
|
||||
}, url, postParams);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,179 @@
|
||||
|
||||
|
||||
import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/profile/get_contact_details_list.dart';
|
||||
|
||||
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;
|
||||
GetContactDetailsList? getContactDetailsList;
|
||||
|
||||
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,
|
||||
this.getContactDetailsList});
|
||||
|
||||
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'];
|
||||
pARENTSEGMENTSVS = json['PARENT_SEGMENTS_VS'];
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,36 @@
|
||||
class GetDeductionsList {
|
||||
int? aMOUNT;
|
||||
String? eLEMENTNAME;
|
||||
int? fROMROWNUM;
|
||||
int? nOOFROWS;
|
||||
int? rOWNUM;
|
||||
int? tOROWNUM;
|
||||
|
||||
GetDeductionsList(
|
||||
{this.aMOUNT,
|
||||
this.eLEMENTNAME,
|
||||
this.fROMROWNUM,
|
||||
this.nOOFROWS,
|
||||
this.rOWNUM,
|
||||
this.tOROWNUM});
|
||||
|
||||
GetDeductionsList.fromJson(Map<String, dynamic> json) {
|
||||
aMOUNT = json['AMOUNT'];
|
||||
eLEMENTNAME = json['ELEMENT_NAME'];
|
||||
fROMROWNUM = json['FROM_ROW_NUM'];
|
||||
nOOFROWS = json['NO_OF_ROWS'];
|
||||
rOWNUM = json['ROW_NUM'];
|
||||
tOROWNUM = json['TO_ROW_NUM'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['AMOUNT'] = this.aMOUNT;
|
||||
data['ELEMENT_NAME'] = this.eLEMENTNAME;
|
||||
data['FROM_ROW_NUM'] = this.fROMROWNUM;
|
||||
data['NO_OF_ROWS'] = this.nOOFROWS;
|
||||
data['ROW_NUM'] = this.rOWNUM;
|
||||
data['TO_ROW_NUM'] = this.tOROWNUM;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
class GetEarningsList {
|
||||
int? aMOUNT;
|
||||
String? eLEMENTNAME;
|
||||
int? fROMROWNUM;
|
||||
int? nOOFROWS;
|
||||
int? rOWNUM;
|
||||
int? tOROWNUM;
|
||||
|
||||
GetEarningsList(
|
||||
{this.aMOUNT,
|
||||
this.eLEMENTNAME,
|
||||
this.fROMROWNUM,
|
||||
this.nOOFROWS,
|
||||
this.rOWNUM,
|
||||
this.tOROWNUM});
|
||||
|
||||
GetEarningsList.fromJson(Map<String, dynamic> json) {
|
||||
aMOUNT = json['AMOUNT'];
|
||||
eLEMENTNAME = json['ELEMENT_NAME'];
|
||||
fROMROWNUM = json['FROM_ROW_NUM'];
|
||||
nOOFROWS = json['NO_OF_ROWS'];
|
||||
rOWNUM = json['ROW_NUM'];
|
||||
tOROWNUM = json['TO_ROW_NUM'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['AMOUNT'] = this.aMOUNT;
|
||||
data['ELEMENT_NAME'] = this.eLEMENTNAME;
|
||||
data['FROM_ROW_NUM'] = this.fROMROWNUM;
|
||||
data['NO_OF_ROWS'] = this.nOOFROWS;
|
||||
data['ROW_NUM'] = this.rOWNUM;
|
||||
data['TO_ROW_NUM'] = this.tOROWNUM;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
class GetPayslipList {
|
||||
int? aCTIONCONTEXTID;
|
||||
String? pAYMENTDATE;
|
||||
String? pAYSLIPCHOICE;
|
||||
String? pERIODENDDATE;
|
||||
String? pERIODNAME;
|
||||
String? pERIODSTARTDATE;
|
||||
|
||||
GetPayslipList(
|
||||
{this.aCTIONCONTEXTID,
|
||||
this.pAYMENTDATE,
|
||||
this.pAYSLIPCHOICE,
|
||||
this.pERIODENDDATE,
|
||||
this.pERIODNAME,
|
||||
this.pERIODSTARTDATE});
|
||||
|
||||
GetPayslipList.fromJson(Map<String, dynamic> json) {
|
||||
aCTIONCONTEXTID = json['ACTION_CONTEXT_ID'];
|
||||
pAYMENTDATE = json['PAYMENT_DATE'];
|
||||
pAYSLIPCHOICE = json['PAYSLIP_CHOICE'];
|
||||
pERIODENDDATE = json['PERIOD_END_DATE'];
|
||||
pERIODNAME = json['PERIOD_NAME'];
|
||||
pERIODSTARTDATE = json['PERIOD_START_DATE'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ACTION_CONTEXT_ID'] = this.aCTIONCONTEXTID;
|
||||
data['PAYMENT_DATE'] = this.pAYMENTDATE;
|
||||
data['PAYSLIP_CHOICE'] = this.pAYSLIPCHOICE;
|
||||
data['PERIOD_END_DATE'] = this.pERIODENDDATE;
|
||||
data['PERIOD_NAME'] = this.pERIODNAME;
|
||||
data['PERIOD_START_DATE'] = this.pERIODSTARTDATE;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,32 @@
|
||||
class GetPaymentInformationList {
|
||||
String? aCCOUNTNUMBER;
|
||||
String? aMOUNT;
|
||||
String? bANKNAME;
|
||||
String? bRANCHNAME;
|
||||
String? pAYMENTMETHODNAME;
|
||||
|
||||
GetPaymentInformationList(
|
||||
{this.aCCOUNTNUMBER,
|
||||
this.aMOUNT,
|
||||
this.bANKNAME,
|
||||
this.bRANCHNAME,
|
||||
this.pAYMENTMETHODNAME});
|
||||
|
||||
GetPaymentInformationList.fromJson(Map<String, dynamic> json) {
|
||||
aCCOUNTNUMBER = json['ACCOUNT_NUMBER'];
|
||||
aMOUNT = json['AMOUNT'];
|
||||
bANKNAME = json['BANK_NAME'];
|
||||
bRANCHNAME = json['BRANCH_NAME'];
|
||||
pAYMENTMETHODNAME = json['PAYMENT_METHOD_NAME'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ACCOUNT_NUMBER'] = this.aCCOUNTNUMBER;
|
||||
data['AMOUNT'] = this.aMOUNT;
|
||||
data['BANK_NAME'] = this.bANKNAME;
|
||||
data['BRANCH_NAME'] = this.bRANCHNAME;
|
||||
data['PAYMENT_METHOD_NAME'] = this.pAYMENTMETHODNAME;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
class GetSummaryOfPaymentList {
|
||||
int? tOTALDEDUCTIONSAMOUNT;
|
||||
int? tOTALDEDUCTIONSPERCENTAGE;
|
||||
int? tOTALEARNINGSAMOUNT;
|
||||
int? tOTALEARNINGSPERCENTAGE;
|
||||
int? tOTALPAYAMOUNT;
|
||||
int? tOTALPAYPERCENTAGE;
|
||||
|
||||
GetSummaryOfPaymentList(
|
||||
{this.tOTALDEDUCTIONSAMOUNT,
|
||||
this.tOTALDEDUCTIONSPERCENTAGE,
|
||||
this.tOTALEARNINGSAMOUNT,
|
||||
this.tOTALEARNINGSPERCENTAGE,
|
||||
this.tOTALPAYAMOUNT,
|
||||
this.tOTALPAYPERCENTAGE});
|
||||
|
||||
GetSummaryOfPaymentList.fromJson(Map<String, dynamic> json) {
|
||||
tOTALDEDUCTIONSAMOUNT = json['TOTAL_DEDUCTIONS_AMOUNT'];
|
||||
tOTALDEDUCTIONSPERCENTAGE = json['TOTAL_DEDUCTIONS_PERCENTAGE'];
|
||||
tOTALEARNINGSAMOUNT = json['TOTAL_EARNINGS_AMOUNT'];
|
||||
tOTALEARNINGSPERCENTAGE = json['TOTAL_EARNINGS_PERCENTAGE'];
|
||||
tOTALPAYAMOUNT = json['TOTAL_PAY_AMOUNT'];
|
||||
tOTALPAYPERCENTAGE = json['TOTAL_PAY_PERCENTAGE'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['TOTAL_DEDUCTIONS_AMOUNT'] = this.tOTALDEDUCTIONSAMOUNT;
|
||||
data['TOTAL_DEDUCTIONS_PERCENTAGE'] = this.tOTALDEDUCTIONSPERCENTAGE;
|
||||
data['TOTAL_EARNINGS_AMOUNT'] = this.tOTALEARNINGSAMOUNT;
|
||||
data['TOTAL_EARNINGS_PERCENTAGE'] = this.tOTALEARNINGSPERCENTAGE;
|
||||
data['TOTAL_PAY_AMOUNT'] = this.tOTALPAYAMOUNT;
|
||||
data['TOTAL_PAY_PERCENTAGE'] = this.tOTALPAYPERCENTAGE;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,36 @@
|
||||
class GetDeductionsList {
|
||||
int? aMOUNT;
|
||||
String? eLEMENTNAME;
|
||||
int? fROMROWNUM;
|
||||
int? nOOFROWS;
|
||||
int? rOWNUM;
|
||||
int? tOROWNUM;
|
||||
|
||||
GetDeductionsList(
|
||||
{this.aMOUNT,
|
||||
this.eLEMENTNAME,
|
||||
this.fROMROWNUM,
|
||||
this.nOOFROWS,
|
||||
this.rOWNUM,
|
||||
this.tOROWNUM});
|
||||
|
||||
GetDeductionsList.fromJson(Map<String, dynamic> json) {
|
||||
aMOUNT = json['AMOUNT'];
|
||||
eLEMENTNAME = json['ELEMENT_NAME'];
|
||||
fROMROWNUM = json['FROM_ROW_NUM'];
|
||||
nOOFROWS = json['NO_OF_ROWS'];
|
||||
rOWNUM = json['ROW_NUM'];
|
||||
tOROWNUM = json['TO_ROW_NUM'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['AMOUNT'] = this.aMOUNT;
|
||||
data['ELEMENT_NAME'] = this.eLEMENTNAME;
|
||||
data['FROM_ROW_NUM'] = this.fROMROWNUM;
|
||||
data['NO_OF_ROWS'] = this.nOOFROWS;
|
||||
data['ROW_NUM'] = this.rOWNUM;
|
||||
data['TO_ROW_NUM'] = this.tOROWNUM;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
|
||||
class GetEarningsList {
|
||||
int? aMOUNT;
|
||||
String? eLEMENTNAME;
|
||||
int? fROMROWNUM;
|
||||
int? nOOFROWS;
|
||||
int? rOWNUM;
|
||||
int? tOROWNUM;
|
||||
|
||||
GetEarningsList(
|
||||
{this.aMOUNT,
|
||||
this.eLEMENTNAME,
|
||||
this.fROMROWNUM,
|
||||
this.nOOFROWS,
|
||||
this.rOWNUM,
|
||||
this.tOROWNUM});
|
||||
|
||||
GetEarningsList.fromJson(Map<String, dynamic> json) {
|
||||
aMOUNT = json['AMOUNT'];
|
||||
eLEMENTNAME = json['ELEMENT_NAME'];
|
||||
fROMROWNUM = json['FROM_ROW_NUM'];
|
||||
nOOFROWS = json['NO_OF_ROWS'];
|
||||
rOWNUM = json['ROW_NUM'];
|
||||
tOROWNUM = json['TO_ROW_NUM'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['AMOUNT'] = this.aMOUNT;
|
||||
data['ELEMENT_NAME'] = this.eLEMENTNAME;
|
||||
data['FROM_ROW_NUM'] = this.fROMROWNUM;
|
||||
data['NO_OF_ROWS'] = this.nOOFROWS;
|
||||
data['ROW_NUM'] = this.rOWNUM;
|
||||
data['TO_ROW_NUM'] = this.tOROWNUM;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,33 @@
|
||||
|
||||
class GetPaymentInformationList {
|
||||
String? aCCOUNTNUMBER;
|
||||
String? aMOUNT;
|
||||
String? bANKNAME;
|
||||
String? bRANCHNAME;
|
||||
String? pAYMENTMETHODNAME;
|
||||
|
||||
GetPaymentInformationList(
|
||||
{this.aCCOUNTNUMBER,
|
||||
this.aMOUNT,
|
||||
this.bANKNAME,
|
||||
this.bRANCHNAME,
|
||||
this.pAYMENTMETHODNAME});
|
||||
|
||||
GetPaymentInformationList.fromJson(Map<String, dynamic> json) {
|
||||
aCCOUNTNUMBER = json['ACCOUNT_NUMBER'];
|
||||
aMOUNT = json['AMOUNT'];
|
||||
bANKNAME = json['BANK_NAME'];
|
||||
bRANCHNAME = json['BRANCH_NAME'];
|
||||
pAYMENTMETHODNAME = json['PAYMENT_METHOD_NAME'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ACCOUNT_NUMBER'] = this.aCCOUNTNUMBER;
|
||||
data['AMOUNT'] = this.aMOUNT;
|
||||
data['BANK_NAME'] = this.bANKNAME;
|
||||
data['BRANCH_NAME'] = this.bRANCHNAME;
|
||||
data['PAYMENT_METHOD_NAME'] = this.pAYMENTMETHODNAME;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
|
||||
|
||||
class GetPayslipList {
|
||||
int? aCTIONCONTEXTID;
|
||||
String? pAYMENTDATE;
|
||||
String? pAYSLIPCHOICE;
|
||||
String? pERIODENDDATE;
|
||||
String? pERIODNAME;
|
||||
String? pERIODSTARTDATE;
|
||||
|
||||
GetPayslipList(
|
||||
{this.aCTIONCONTEXTID,
|
||||
this.pAYMENTDATE,
|
||||
this.pAYSLIPCHOICE,
|
||||
this.pERIODENDDATE,
|
||||
this.pERIODNAME,
|
||||
this.pERIODSTARTDATE});
|
||||
|
||||
GetPayslipList.fromJson(Map<String, dynamic> json) {
|
||||
aCTIONCONTEXTID = json['ACTION_CONTEXT_ID'];
|
||||
pAYMENTDATE = json['PAYMENT_DATE'];
|
||||
pAYSLIPCHOICE = json['PAYSLIP_CHOICE'];
|
||||
pERIODENDDATE = json['PERIOD_END_DATE'];
|
||||
pERIODNAME = json['PERIOD_NAME'];
|
||||
pERIODSTARTDATE = json['PERIOD_START_DATE'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ACTION_CONTEXT_ID'] = this.aCTIONCONTEXTID;
|
||||
data['PAYMENT_DATE'] = this.pAYMENTDATE;
|
||||
data['PAYSLIP_CHOICE'] = this.pAYSLIPCHOICE;
|
||||
data['PERIOD_END_DATE'] = this.pERIODENDDATE;
|
||||
data['PERIOD_NAME'] = this.pERIODNAME;
|
||||
data['PERIOD_START_DATE'] = this.pERIODSTARTDATE;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
|
||||
|
||||
class GetSummaryOfPaymentList {
|
||||
int? tOTALDEDUCTIONSAMOUNT;
|
||||
int? tOTALDEDUCTIONSPERCENTAGE;
|
||||
int? tOTALEARNINGSAMOUNT;
|
||||
int? tOTALEARNINGSPERCENTAGE;
|
||||
int? tOTALPAYAMOUNT;
|
||||
int? tOTALPAYPERCENTAGE;
|
||||
|
||||
GetSummaryOfPaymentList(
|
||||
{this.tOTALDEDUCTIONSAMOUNT,
|
||||
this.tOTALDEDUCTIONSPERCENTAGE,
|
||||
this.tOTALEARNINGSAMOUNT,
|
||||
this.tOTALEARNINGSPERCENTAGE,
|
||||
this.tOTALPAYAMOUNT,
|
||||
this.tOTALPAYPERCENTAGE});
|
||||
|
||||
GetSummaryOfPaymentList.fromJson(Map<String, dynamic> json) {
|
||||
tOTALDEDUCTIONSAMOUNT = json['TOTAL_DEDUCTIONS_AMOUNT'];
|
||||
tOTALDEDUCTIONSPERCENTAGE = json['TOTAL_DEDUCTIONS_PERCENTAGE'];
|
||||
tOTALEARNINGSAMOUNT = json['TOTAL_EARNINGS_AMOUNT'];
|
||||
tOTALEARNINGSPERCENTAGE = json['TOTAL_EARNINGS_PERCENTAGE'];
|
||||
tOTALPAYAMOUNT = json['TOTAL_PAY_AMOUNT'];
|
||||
tOTALPAYPERCENTAGE = json['TOTAL_PAY_PERCENTAGE'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['TOTAL_DEDUCTIONS_AMOUNT'] = this.tOTALDEDUCTIONSAMOUNT;
|
||||
data['TOTAL_DEDUCTIONS_PERCENTAGE'] = this.tOTALDEDUCTIONSPERCENTAGE;
|
||||
data['TOTAL_EARNINGS_AMOUNT'] = this.tOTALEARNINGSAMOUNT;
|
||||
data['TOTAL_EARNINGS_PERCENTAGE'] = this.tOTALEARNINGSPERCENTAGE;
|
||||
data['TOTAL_PAY_AMOUNT'] = this.tOTALPAYAMOUNT;
|
||||
data['TOTAL_PAY_PERCENTAGE'] = this.tOTALPAYPERCENTAGE;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,189 @@
|
||||
import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_employee_address_model.dart';
|
||||
|
||||
class GetAddressDffStructureList {
|
||||
String? aLPHANUMERICALLOWEDFLAG;
|
||||
String? aPPLICATIONCOLUMNNAME;
|
||||
String? cHILDSEGMENTSVS;
|
||||
Null? 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;
|
||||
bool? isEmptyOption;
|
||||
String? lONGLISTFLAG;
|
||||
int? mAXIMUMSIZE;
|
||||
String? mAXIMUMVALUE;
|
||||
String? mINIMUMVALUE;
|
||||
String? mOBILEENABLED;
|
||||
String? nUMBERPRECISION;
|
||||
String? nUMERICMODEENABLEDFLAG;
|
||||
String? pARENTSEGMENTSDV;
|
||||
List<Null>? pARENTSEGMENTSDVSplited;
|
||||
String? pARENTSEGMENTSVS;
|
||||
List<Null>? pARENTSEGMENTSVSSplitedVS;
|
||||
String? rEADONLY;
|
||||
String? rEQUIREDFLAG;
|
||||
String? sEGMENTNAME;
|
||||
String? sEGMENTPROMPT;
|
||||
int? sEGMENTSEQNUM;
|
||||
String? uPPERCASEONLYFLAG;
|
||||
String? uSEDFLAG;
|
||||
String? vALIDATIONTYPE;
|
||||
String? vALIDATIONTYPEDSP;
|
||||
GetEmployeeAddressList? getEmployeeAddressList;
|
||||
GetAddressDffStructureList(
|
||||
{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.isEmptyOption,
|
||||
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,
|
||||
this.getEmployeeAddressList});
|
||||
|
||||
GetAddressDffStructureList.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'];
|
||||
isEmptyOption = json['IsEmptyOption'];
|
||||
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(v);
|
||||
});
|
||||
}
|
||||
pARENTSEGMENTSVS = json['PARENT_SEGMENTS_VS'];
|
||||
if (json['PARENT_SEGMENTS_VS_SplitedVS'] != null) {
|
||||
pARENTSEGMENTSVSSplitedVS = <Null>[];
|
||||
json['PARENT_SEGMENTS_VS_SplitedVS'].forEach((v) {
|
||||
pARENTSEGMENTSVSSplitedVS!.add(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'];
|
||||
getEmployeeAddressList = json['GetEmployeeAddressList'] != null ? new GetEmployeeAddressList.fromJson(json['GetEmployeeAddressList']) : GetEmployeeAddressList();
|
||||
}
|
||||
|
||||
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['IsEmptyOption'] = this.isEmptyOption;
|
||||
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).toList();
|
||||
}
|
||||
data['PARENT_SEGMENTS_VS'] = this.pARENTSEGMENTSVS;
|
||||
if (this.pARENTSEGMENTSVSSplitedVS != null) {
|
||||
data['PARENT_SEGMENTS_VS_SplitedVS'] = this.pARENTSEGMENTSVSSplitedVS!.map((v) => v).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;
|
||||
data['GetEmployeeAddressList'] != null ? this.getEmployeeAddressList!.toJson() : GetEmployeeAddressList();
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,93 @@
|
||||
|
||||
|
||||
import 'package:mohem_flutter_app/models/profile/get_contact_details_list.dart';
|
||||
|
||||
class GetContactColsStructureList {
|
||||
String? aPPLICATIONCOLUMNNAME;
|
||||
String? dATATYPE;
|
||||
String? dISPLAYFLAG;
|
||||
int? gROUPNUM;
|
||||
dynamic? mAXIMUMSIZE;
|
||||
String? oBJECTNAME;
|
||||
String? oBJECTTYPE;
|
||||
List<ObjectValuesList>? objectValuesList;
|
||||
//List<dynamic>? objectValuesList;
|
||||
String? rEQUIREDFLAG;
|
||||
String? sEGMENTPROMPT;
|
||||
int? sEGMENTSEQNUM;
|
||||
GetContactDetailsList? getContactDetailsList;
|
||||
|
||||
GetContactColsStructureList(
|
||||
{this.aPPLICATIONCOLUMNNAME,
|
||||
this.dATATYPE,
|
||||
this.dISPLAYFLAG,
|
||||
this.gROUPNUM,
|
||||
this.mAXIMUMSIZE,
|
||||
this.oBJECTNAME,
|
||||
this.oBJECTTYPE,
|
||||
this.objectValuesList,
|
||||
this.rEQUIREDFLAG,
|
||||
this.sEGMENTPROMPT,
|
||||
this.sEGMENTSEQNUM,
|
||||
this.getContactDetailsList});
|
||||
|
||||
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;
|
||||
dynamic? 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;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
class GetCountriesListModel {
|
||||
String? cOUNTRYCODE;
|
||||
String? cOUNTRYNAME;
|
||||
|
||||
GetCountriesListModel({this.cOUNTRYCODE, this.cOUNTRYNAME});
|
||||
|
||||
GetCountriesListModel.fromJson(Map<String, dynamic> json) {
|
||||
cOUNTRYCODE = json['COUNTRY_CODE'];
|
||||
cOUNTRYNAME = json['COUNTRY_NAME'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['COUNTRY_CODE'] = this.cOUNTRYCODE;
|
||||
data['COUNTRY_NAME'] = this.cOUNTRYNAME;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
class StartAddressApprovalProcess {
|
||||
String? pRETURNMSG;
|
||||
String? pRETURNSTATUS;
|
||||
|
||||
StartAddressApprovalProcess({this.pRETURNMSG, this.pRETURNSTATUS});
|
||||
|
||||
StartAddressApprovalProcess.fromJson(Map<String, dynamic> json) {
|
||||
pRETURNMSG = json['P_RETURN_MSG'];
|
||||
pRETURNSTATUS = json['P_RETURN_STATUS'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['P_RETURN_MSG'] = this.pRETURNMSG;
|
||||
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
class SubmitAddressTransaction {
|
||||
String? pITEMKEY;
|
||||
String? pRETURNMSG;
|
||||
String? pRETURNSTATUS;
|
||||
int? pTRANSACTIONID;
|
||||
|
||||
SubmitAddressTransaction({this.pITEMKEY, this.pRETURNMSG, this.pRETURNSTATUS, this.pTRANSACTIONID});
|
||||
|
||||
SubmitAddressTransaction.fromJson(Map<String, dynamic> json) {
|
||||
pITEMKEY = json['P_ITEM_KEY'];
|
||||
pRETURNMSG = json['P_RETURN_MSG'];
|
||||
pRETURNSTATUS = json['P_RETURN_STATUS'];
|
||||
pTRANSACTIONID = json['P_TRANSACTION_ID'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['P_ITEM_KEY'] = this.pITEMKEY;
|
||||
data['P_RETURN_MSG'] = this.pRETURNMSG;
|
||||
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
|
||||
data['P_TRANSACTION_ID'] = this.pTRANSACTIONID;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
class SubmitBasicDetailsTransactionList {
|
||||
String? pITEMKEY;
|
||||
String? pRETURNMSG;
|
||||
String? pRETURNSTATUS;
|
||||
int? pTRANSACTIONID;
|
||||
|
||||
SubmitBasicDetailsTransactionList({this.pITEMKEY, this.pRETURNMSG, this.pRETURNSTATUS, this.pTRANSACTIONID});
|
||||
|
||||
SubmitBasicDetailsTransactionList.fromJson(Map<String, dynamic> json) {
|
||||
pITEMKEY = json['P_ITEM_KEY'];
|
||||
pRETURNMSG = json['P_RETURN_MSG'];
|
||||
pRETURNSTATUS = json['P_RETURN_STATUS'];
|
||||
pTRANSACTIONID = json['P_TRANSACTION_ID'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['P_ITEM_KEY'] = this.pITEMKEY;
|
||||
data['P_RETURN_MSG'] = this.pRETURNMSG;
|
||||
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
|
||||
data['P_TRANSACTION_ID'] = this.pTRANSACTIONID;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,34 @@
|
||||
|
||||
class SubmitContactTransactionList {
|
||||
String? pITEMKEY;
|
||||
String? pRETURNMSG;
|
||||
String? pRETURNSTATUS;
|
||||
int? pTRANSACTIONID;
|
||||
|
||||
SubmitContactTransactionList(
|
||||
{this.pITEMKEY,
|
||||
this.pRETURNMSG,
|
||||
this.pRETURNSTATUS,
|
||||
this.pTRANSACTIONID});
|
||||
|
||||
SubmitContactTransactionList.fromJson(Map<String, dynamic> json) {
|
||||
pITEMKEY = json['P_ITEM_KEY'];
|
||||
pRETURNMSG = json['P_RETURN_MSG'];
|
||||
pRETURNSTATUS = json['P_RETURN_STATUS'];
|
||||
pTRANSACTIONID = json['P_TRANSACTION_ID'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['P_ITEM_KEY'] = this.pITEMKEY;
|
||||
data['P_RETURN_MSG'] = this.pRETURNMSG;
|
||||
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
|
||||
data['P_TRANSACTION_ID'] = this.pTRANSACTIONID;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
|
||||
// if (this.submitContactTransactionList != null) {
|
||||
// data['SubmitContactTransactionList'] =
|
||||
// this.submitContactTransactionList!.toJson();
|
||||
// }
|
||||
@ -0,0 +1,24 @@
|
||||
class SubmitPhonesTransactionList {
|
||||
String? pITEMKEY;
|
||||
String? pRETURNMSG;
|
||||
String? pRETURNSTATUS;
|
||||
int? pTRANSACTIONID;
|
||||
|
||||
SubmitPhonesTransactionList({this.pITEMKEY, this.pRETURNMSG, this.pRETURNSTATUS, this.pTRANSACTIONID});
|
||||
|
||||
SubmitPhonesTransactionList.fromJson(Map<String, dynamic> json) {
|
||||
pITEMKEY = json['P_ITEM_KEY'];
|
||||
pRETURNMSG = json['P_RETURN_MSG'];
|
||||
pRETURNSTATUS = json['P_RETURN_STATUS'];
|
||||
pTRANSACTIONID = json['P_TRANSACTION_ID'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['P_ITEM_KEY'] = this.pITEMKEY;
|
||||
data['P_RETURN_MSG'] = this.pRETURNMSG;
|
||||
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
|
||||
data['P_TRANSACTION_ID'] = this.pTRANSACTIONID;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
class StartPhoneApprovalProcess {
|
||||
String? pRETURNMSG;
|
||||
String? pRETURNSTATUS;
|
||||
|
||||
StartPhoneApprovalProcess({this.pRETURNMSG, this.pRETURNSTATUS});
|
||||
|
||||
StartPhoneApprovalProcess.fromJson(Map<String, dynamic> json) {
|
||||
pRETURNMSG = json['P_RETURN_MSG'];
|
||||
pRETURNSTATUS = json['P_RETURN_STATUS'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['P_RETURN_MSG'] = this.pRETURNMSG;
|
||||
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
class GetItemTypeNotificationsList {
|
||||
String? fYIFLAG;
|
||||
String? nOTIFICATIONDISPLAYNAME;
|
||||
String? nOTIFICATIONNAME;
|
||||
String? nOTIFICATIONSUBJECT;
|
||||
|
||||
GetItemTypeNotificationsList(
|
||||
{this.fYIFLAG,
|
||||
this.nOTIFICATIONDISPLAYNAME,
|
||||
this.nOTIFICATIONNAME,
|
||||
this.nOTIFICATIONSUBJECT});
|
||||
|
||||
GetItemTypeNotificationsList.fromJson(Map<String, dynamic> json) {
|
||||
fYIFLAG = json['FYI_FLAG'];
|
||||
nOTIFICATIONDISPLAYNAME = json['NOTIFICATION_DISPLAY_NAME'];
|
||||
nOTIFICATIONNAME = json['NOTIFICATION_NAME'];
|
||||
nOTIFICATIONSUBJECT = json['NOTIFICATION_SUBJECT'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['FYI_FLAG'] = this.fYIFLAG;
|
||||
data['NOTIFICATION_DISPLAY_NAME'] = this.nOTIFICATIONDISPLAYNAME;
|
||||
data['NOTIFICATION_NAME'] = this.nOTIFICATIONNAME;
|
||||
data['NOTIFICATION_SUBJECT'] = this.nOTIFICATIONSUBJECT;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
class GetNotificationReassignModeList {
|
||||
String? rADIOBUTTONACTION;
|
||||
String? rADIOBUTTONLABEL;
|
||||
int? rADIOBUTTONSEQ;
|
||||
|
||||
GetNotificationReassignModeList(
|
||||
{this.rADIOBUTTONACTION, this.rADIOBUTTONLABEL, this.rADIOBUTTONSEQ});
|
||||
|
||||
GetNotificationReassignModeList.fromJson(Map<String, dynamic> json) {
|
||||
rADIOBUTTONACTION = json['RADIO_BUTTON_ACTION'];
|
||||
rADIOBUTTONLABEL = json['RADIO_BUTTON_LABEL'];
|
||||
rADIOBUTTONSEQ = json['RADIO_BUTTON_SEQ'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['RADIO_BUTTON_ACTION'] = this.rADIOBUTTONACTION;
|
||||
data['RADIO_BUTTON_LABEL'] = this.rADIOBUTTONLABEL;
|
||||
data['RADIO_BUTTON_SEQ'] = this.rADIOBUTTONSEQ;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,92 @@
|
||||
class GetVacationRulesList {
|
||||
String? aCTION;
|
||||
String? aCTIONDISPLAY;
|
||||
String? bEGINDATE;
|
||||
String? eNDDATE;
|
||||
int? fROMROWNUM;
|
||||
String? fYIFLAG;
|
||||
String? iTEMTYPE;
|
||||
String? iTEMTYPEDISPLAYNAME;
|
||||
String? mESSAGE;
|
||||
String? nOTIFICATIONDISPLAYNAME;
|
||||
String? nOTIFICATIONNAME;
|
||||
String? nOTIFICATIONSUBJECT;
|
||||
int? nOOFROWS;
|
||||
String? rEPLACEMENTUSERNAME;
|
||||
int? rOWNUM;
|
||||
int? rULEID;
|
||||
String? rULENAME;
|
||||
String? rULESTATUS;
|
||||
String? rULETIPMESSAGE;
|
||||
int? tOROWNUM;
|
||||
|
||||
GetVacationRulesList(
|
||||
{this.aCTION,
|
||||
this.aCTIONDISPLAY,
|
||||
this.bEGINDATE,
|
||||
this.eNDDATE,
|
||||
this.fROMROWNUM,
|
||||
this.fYIFLAG,
|
||||
this.iTEMTYPE,
|
||||
this.iTEMTYPEDISPLAYNAME,
|
||||
this.mESSAGE,
|
||||
this.nOTIFICATIONDISPLAYNAME,
|
||||
this.nOTIFICATIONNAME,
|
||||
this.nOTIFICATIONSUBJECT,
|
||||
this.nOOFROWS,
|
||||
this.rEPLACEMENTUSERNAME,
|
||||
this.rOWNUM,
|
||||
this.rULEID,
|
||||
this.rULENAME,
|
||||
this.rULESTATUS,
|
||||
this.rULETIPMESSAGE,
|
||||
this.tOROWNUM});
|
||||
|
||||
GetVacationRulesList.fromJson(Map<String, dynamic> json) {
|
||||
aCTION = json['ACTION'];
|
||||
aCTIONDISPLAY = json['ACTION_DISPLAY'];
|
||||
bEGINDATE = json['BEGIN_DATE'];
|
||||
eNDDATE = json['END_DATE'];
|
||||
fROMROWNUM = json['FROM_ROW_NUM'];
|
||||
fYIFLAG = json['FYI_FLAG'];
|
||||
iTEMTYPE = json['ITEM_TYPE'];
|
||||
iTEMTYPEDISPLAYNAME = json['ITEM_TYPE_DISPLAY_NAME'];
|
||||
mESSAGE = json['MESSAGE'];
|
||||
nOTIFICATIONDISPLAYNAME = json['NOTIFICATION_DISPLAY_NAME'];
|
||||
nOTIFICATIONNAME = json['NOTIFICATION_NAME'];
|
||||
nOTIFICATIONSUBJECT = json['NOTIFICATION_SUBJECT'];
|
||||
nOOFROWS = json['NO_OF_ROWS'];
|
||||
rEPLACEMENTUSERNAME = json['REPLACEMENT_USER_NAME'];
|
||||
rOWNUM = json['ROW_NUM'];
|
||||
rULEID = json['RULE_ID'];
|
||||
rULENAME = json['RULE_NAME'];
|
||||
rULESTATUS = json['RULE_STATUS'];
|
||||
rULETIPMESSAGE = json['RULE_TIP_MESSAGE'];
|
||||
tOROWNUM = json['TO_ROW_NUM'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ACTION'] = this.aCTION;
|
||||
data['ACTION_DISPLAY'] = this.aCTIONDISPLAY;
|
||||
data['BEGIN_DATE'] = this.bEGINDATE;
|
||||
data['END_DATE'] = this.eNDDATE;
|
||||
data['FROM_ROW_NUM'] = this.fROMROWNUM;
|
||||
data['FYI_FLAG'] = this.fYIFLAG;
|
||||
data['ITEM_TYPE'] = this.iTEMTYPE;
|
||||
data['ITEM_TYPE_DISPLAY_NAME'] = this.iTEMTYPEDISPLAYNAME;
|
||||
data['MESSAGE'] = this.mESSAGE;
|
||||
data['NOTIFICATION_DISPLAY_NAME'] = this.nOTIFICATIONDISPLAYNAME;
|
||||
data['NOTIFICATION_NAME'] = this.nOTIFICATIONNAME;
|
||||
data['NOTIFICATION_SUBJECT'] = this.nOTIFICATIONSUBJECT;
|
||||
data['NO_OF_ROWS'] = this.nOOFROWS;
|
||||
data['REPLACEMENT_USER_NAME'] = this.rEPLACEMENTUSERNAME;
|
||||
data['ROW_NUM'] = this.rOWNUM;
|
||||
data['RULE_ID'] = this.rULEID;
|
||||
data['RULE_NAME'] = this.rULENAME;
|
||||
data['RULE_STATUS'] = this.rULESTATUS;
|
||||
data['RULE_TIP_MESSAGE'] = this.rULETIPMESSAGE;
|
||||
data['TO_ROW_NUM'] = this.tOROWNUM;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
class RespondAttributesList {
|
||||
String? aTTRIBUTEDISPLAYNAME;
|
||||
String? aTTRIBUTEFORMAT;
|
||||
String? aTTRIBUTENAME;
|
||||
String? aTTRIBUTETYPE;
|
||||
|
||||
RespondAttributesList(
|
||||
{this.aTTRIBUTEDISPLAYNAME,
|
||||
this.aTTRIBUTEFORMAT,
|
||||
this.aTTRIBUTENAME,
|
||||
this.aTTRIBUTETYPE});
|
||||
|
||||
RespondAttributesList.fromJson(Map<String, dynamic> json) {
|
||||
aTTRIBUTEDISPLAYNAME = json['ATTRIBUTE_DISPLAY_NAME'];
|
||||
aTTRIBUTEFORMAT = json['ATTRIBUTE_FORMAT'];
|
||||
aTTRIBUTENAME = json['ATTRIBUTE_NAME'];
|
||||
aTTRIBUTETYPE = json['ATTRIBUTE_TYPE'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ATTRIBUTE_DISPLAY_NAME'] = this.aTTRIBUTEDISPLAYNAME;
|
||||
data['ATTRIBUTE_FORMAT'] = this.aTTRIBUTEFORMAT;
|
||||
data['ATTRIBUTE_NAME'] = this.aTTRIBUTENAME;
|
||||
data['ATTRIBUTE_TYPE'] = this.aTTRIBUTETYPE;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
class VrItemTypesList {
|
||||
String? iTEMTYPE;
|
||||
String? iTEMTYPEDISPLAYNAME;
|
||||
|
||||
VrItemTypesList({this.iTEMTYPE, this.iTEMTYPEDISPLAYNAME});
|
||||
|
||||
VrItemTypesList.fromJson(Map<String, dynamic> json) {
|
||||
iTEMTYPE = json['ITEM_TYPE'];
|
||||
iTEMTYPEDISPLAYNAME = json['ITEM_TYPE_DISPLAY_NAME'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['ITEM_TYPE'] = this.iTEMTYPE;
|
||||
data['ITEM_TYPE_DISPLAY_NAME'] = this.iTEMTYPEDISPLAYNAME;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,21 @@
|
||||
class WFLookUpList {
|
||||
String? lOOKUPCODE;
|
||||
String? lOOKUPDESCRIPTION;
|
||||
String? lOOKUPMEANING;
|
||||
|
||||
WFLookUpList({this.lOOKUPCODE, this.lOOKUPDESCRIPTION, this.lOOKUPMEANING});
|
||||
|
||||
WFLookUpList.fromJson(Map<String, dynamic> json) {
|
||||
lOOKUPCODE = json['LOOKUP_CODE'];
|
||||
lOOKUPDESCRIPTION = json['LOOKUP_DESCRIPTION'];
|
||||
lOOKUPMEANING = json['LOOKUP_MEANING'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['LOOKUP_CODE'] = this.lOOKUPCODE;
|
||||
data['LOOKUP_DESCRIPTION'] = this.lOOKUPDESCRIPTION;
|
||||
data['LOOKUP_MEANING'] = this.lOOKUPMEANING;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,124 @@
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/api/vacation_rule_api_client.dart';
|
||||
import 'package:mohem_flutter_app/classes/utils.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/vacation_rule/get_item_type_notifications_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/vacation_rule/get_notification_reassign_mode_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/vacation_rule/respond_attributes_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/vacation_rule/vr_item_types_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/vacation_rule/wf_look_up_list_model.dart';
|
||||
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
|
||||
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
|
||||
|
||||
class AddVacationRuleScreen extends StatefulWidget {
|
||||
AddVacationRuleScreen({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_AddVacationRuleScreenState createState() {
|
||||
return _AddVacationRuleScreenState();
|
||||
}
|
||||
}
|
||||
|
||||
class _AddVacationRuleScreenState extends State<AddVacationRuleScreen> {
|
||||
List<VrItemTypesList>? vrItemTypesList;
|
||||
List<GetItemTypeNotificationsList>? itemTypeNotificationsList;
|
||||
|
||||
List<GetNotificationReassignModeList>? notificationReassignModeList;
|
||||
List<RespondAttributesList>? respondAttributesList;
|
||||
List<WFLookUpList>? wfLookupList;
|
||||
|
||||
int currentStage = 0;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
getVacationRulesList();
|
||||
}
|
||||
|
||||
void getVacationRulesList() async {
|
||||
try {
|
||||
Utils.showLoading(context);
|
||||
vrItemTypesList = await VacationRuleApiClient().getVrItemTypes();
|
||||
Utils.hideLoading(context);
|
||||
currentStage = 1;
|
||||
setState(() {});
|
||||
} catch (ex) {
|
||||
Utils.hideLoading(context);
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
|
||||
void getItemTypeNotificationsList() async {
|
||||
try {
|
||||
Utils.showLoading(context);
|
||||
//itemTypeNotificationsList = await VacationRuleApiClient().getItemTypeNotifications();
|
||||
Utils.hideLoading(context);
|
||||
currentStage = 2;
|
||||
setState(() {});
|
||||
} catch (ex) {
|
||||
Utils.hideLoading(context);
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
|
||||
void callCombineApis() async {
|
||||
try {
|
||||
Utils.showLoading(context);
|
||||
List results = await Future.wait([
|
||||
// VacationRuleApiClient().getNotificationReassignMode(),
|
||||
// VacationRuleApiClient().getRespondAttributes("", ""),
|
||||
// VacationRuleApiClient().getWfLookup(P_LOOKUP_TYPE),
|
||||
]);
|
||||
notificationReassignModeList = results[0];
|
||||
respondAttributesList = results[1];
|
||||
wfLookupList = results[2];
|
||||
Utils.hideLoading(context);
|
||||
currentStage = 3;
|
||||
setState(() {});
|
||||
} catch (ex) {
|
||||
Utils.hideLoading(context);
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
appBar: AppBarWidget(
|
||||
context,
|
||||
title: LocaleKeys.vacationRule.tr(),
|
||||
),
|
||||
body: vrItemTypesList == null
|
||||
? const SizedBox()
|
||||
: (vrItemTypesList!.isEmpty
|
||||
? Utils.getNoDataWidget(context)
|
||||
: Column(
|
||||
children: [
|
||||
ListView(
|
||||
padding: const EdgeInsets.all(21),
|
||||
physics: const BouncingScrollPhysics(),
|
||||
children: [],
|
||||
).expanded,
|
||||
DefaultButton(
|
||||
currentStage == 3 ? LocaleKeys.apply.tr() : LocaleKeys.next.tr(),
|
||||
() {
|
||||
if (currentStage == 1) {
|
||||
getItemTypeNotificationsList();
|
||||
} else if (currentStage == 2) {
|
||||
callCombineApis();
|
||||
}
|
||||
},
|
||||
).insideContainer,
|
||||
],
|
||||
)),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,146 @@
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/api/vacation_rule_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/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/vacation_rule/get_vacation_rules_list_model.dart';
|
||||
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
|
||||
import 'package:mohem_flutter_app/widgets/item_detail_view_widget.dart';
|
||||
|
||||
class VacationRuleScreen extends StatefulWidget {
|
||||
VacationRuleScreen({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_VacationRuleScreenState createState() {
|
||||
return _VacationRuleScreenState();
|
||||
}
|
||||
}
|
||||
|
||||
class _VacationRuleScreenState extends State<VacationRuleScreen> {
|
||||
List<GetVacationRulesList>? vacationRuleList;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
getVacationRulesList();
|
||||
}
|
||||
|
||||
void getVacationRulesList() async {
|
||||
try {
|
||||
Utils.showLoading(context);
|
||||
vacationRuleList = await VacationRuleApiClient().getVacationRules();
|
||||
Utils.hideLoading(context);
|
||||
setState(() {});
|
||||
} catch (ex) {
|
||||
Utils.hideLoading(context);
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
appBar: AppBarWidget(
|
||||
context,
|
||||
title: LocaleKeys.vacationRule.tr(),
|
||||
),
|
||||
body: vacationRuleList == null
|
||||
? const SizedBox()
|
||||
: (vacationRuleList!.isEmpty
|
||||
? Utils.getNoDataWidget(context)
|
||||
: ListView.separated(
|
||||
physics: const BouncingScrollPhysics(),
|
||||
padding: const EdgeInsets.all(21),
|
||||
itemBuilder: (cxt, int parentIndex) => Container(
|
||||
width: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.circular(10),
|
||||
boxShadow: [
|
||||
BoxShadow(
|
||||
color: const Color(0xff000000).withOpacity(.05),
|
||||
blurRadius: 26,
|
||||
offset: const Offset(0, -3),
|
||||
),
|
||||
],
|
||||
),
|
||||
clipBehavior: Clip.antiAlias,
|
||||
child: Stack(
|
||||
clipBehavior: Clip.antiAlias,
|
||||
children: [
|
||||
Positioned(
|
||||
left: -20,
|
||||
top: -10,
|
||||
child: Transform.rotate(
|
||||
angle: 15,
|
||||
child: Container(
|
||||
width: 50,
|
||||
height: 30,
|
||||
color: getStatusColor(vacationRuleList![parentIndex].rULESTATUS!),
|
||||
),
|
||||
),
|
||||
),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
("${vacationRuleList![parentIndex].rULENAME!} | ${vacationRuleList![parentIndex].iTEMTYPEDISPLAYNAME!}").toText16(),
|
||||
4.height,
|
||||
ItemDetailView(LocaleKeys.startDateT.tr(), getParsedTime(vacationRuleList![parentIndex].bEGINDATE!)),
|
||||
ItemDetailView(LocaleKeys.endDateT.tr(), getParsedTime(vacationRuleList![parentIndex].eNDDATE!)),
|
||||
4.height,
|
||||
vacationRuleList![parentIndex].rULESTATUS!.toText12(color: getStatusColor(vacationRuleList![parentIndex].rULESTATUS!)),
|
||||
],
|
||||
).paddingOnly(top: 16, left: 16, right: 16, bottom: 16),
|
||||
],
|
||||
),
|
||||
),
|
||||
separatorBuilder: (cxt, index) => 12.height,
|
||||
itemCount: vacationRuleList!.length)),
|
||||
floatingActionButton: Container(
|
||||
height: 54,
|
||||
width: 54,
|
||||
decoration: const BoxDecoration(
|
||||
shape: BoxShape.circle,
|
||||
gradient: LinearGradient(transform: GradientRotation(.83), begin: Alignment.topRight, end: Alignment.bottomLeft, colors: [
|
||||
MyColors.gradiantEndColor,
|
||||
MyColors.gradiantStartColor,
|
||||
]),
|
||||
),
|
||||
child: const Icon(Icons.add, color: Colors.white, size: 30),
|
||||
).onPress(() {
|
||||
Navigator.pushNamed(context, AppRoutes.addVacationRule);
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
Color getStatusColor(String code) {
|
||||
if (code == "SUBMIT") {
|
||||
return const Color(0xff2E303A);
|
||||
} else if (code == "Inactive") {
|
||||
return const Color(0xffD02127);
|
||||
} else if (code == "active") {
|
||||
return const Color(0xff1FA269);
|
||||
} else if (code == "REQUEST_INFO") {
|
||||
return const Color(0xff2E303A);
|
||||
} else {
|
||||
return const Color(0xff2E303A);
|
||||
}
|
||||
}
|
||||
|
||||
String getParsedTime(String time) {
|
||||
DateTime date = DateFormat("mm/dd/yyyy").parse(time);
|
||||
return DateFormat("d MMM yyyy").format(date);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,67 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
||||
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
||||
|
||||
import 'package:mohem_flutter_app/app_state/app_state.dart';
|
||||
import 'package:mohem_flutter_app/classes/utils.dart';
|
||||
|
||||
class BusinessCardDialog extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return RotatedBox(
|
||||
quarterTurns: 1,
|
||||
child: Container(
|
||||
width: MediaQuery.of(context).size.height / 2,
|
||||
color: Colors.white,
|
||||
margin: EdgeInsets.all(20),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Row(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
Image.asset(
|
||||
"assets/images/logos/bn_cloud_soloution.jpg",
|
||||
width: 80,
|
||||
height: 80,
|
||||
),
|
||||
12.height,
|
||||
(AppState().memberInformationList!.eMPLOYEENAME ?? "").toText20(),
|
||||
],
|
||||
),
|
||||
),
|
||||
Image.memory(
|
||||
Utils.getPostBytes(AppState().memberInformationList!.businessCardQR ?? ""),
|
||||
width: 100,
|
||||
height: 100,
|
||||
),
|
||||
],
|
||||
),
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
children: [
|
||||
1.height,
|
||||
(AppState().memberInformationList!.pOSITIONNAME ?? "").toText12(isBold: false),
|
||||
12.height,
|
||||
(AppState().memberInformationList!.eMPLOYEENUMBER ?? "").toText12(isBold: false),
|
||||
1.height,
|
||||
(AppState().memberInformationList!.eMPLOYEEEMAILADDRESS ?? "").toText12(isBold: false),
|
||||
1.height,
|
||||
(AppState().memberInformationList!.jOBNAME ?? "").toText12(isBold: false),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,77 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/app_state/app_state.dart';
|
||||
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
||||
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
||||
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
|
||||
import 'package:qr_flutter/qr_flutter.dart';
|
||||
|
||||
import 'package:mohem_flutter_app/classes/utils.dart';
|
||||
import 'package:mohem_flutter_app/main.dart';
|
||||
|
||||
class EmployeeDigitialIdDialog extends StatelessWidget {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Container(
|
||||
width: double.infinity,
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Image.asset("assets/images/bn_logo.png"),
|
||||
Padding(
|
||||
padding: const EdgeInsets.all(20.0),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
crossAxisAlignment: CrossAxisAlignment.center,
|
||||
children: [
|
||||
Row(
|
||||
children: [
|
||||
Container(
|
||||
width: 80,
|
||||
height: 80,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: const BorderRadius.all(Radius.circular(12)),
|
||||
boxShadow: [BoxShadow(color: Colors.white60, blurRadius: 10, spreadRadius: 10)],
|
||||
),
|
||||
clipBehavior: Clip.antiAlias,
|
||||
child: Image.memory(
|
||||
Utils.getPostBytes(
|
||||
AppState().memberInformationList!.eMPLOYEEIMAGE ?? "",
|
||||
),
|
||||
fit: BoxFit.cover,
|
||||
),
|
||||
),
|
||||
16.width,
|
||||
(AppState().memberInformationList!.eMPLOYEENUMBER ?? "").toText20(),
|
||||
],
|
||||
),
|
||||
Container(
|
||||
width: double.infinity,
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.start,
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
12.height,
|
||||
(AppState().memberInformationList!.eMPLOYEENAME ?? "").toText16(),
|
||||
4.height,
|
||||
(AppState().memberInformationList!.pOSITIONNAME ?? "").toText12(isBold: false),
|
||||
],
|
||||
),
|
||||
),
|
||||
Image.memory(
|
||||
Utils.getPostBytes(AppState().memberInformationList!.employeeQR ?? ""),
|
||||
width: 160,
|
||||
height: 160,
|
||||
),
|
||||
DefaultButton("Cancel", () {
|
||||
Navigator.pop(context);
|
||||
})
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,290 @@
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/api/monthly_pay_slip_api_client.dart';
|
||||
import 'package:mohem_flutter_app/classes/colors.dart';
|
||||
import 'package:mohem_flutter_app/classes/utils.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/monthly_pay_slip/get_deductions_List_model.dart';
|
||||
import 'package:mohem_flutter_app/models/monthly_pay_slip/get_earnings_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/monthly_pay_slip/get_pay_slip_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/monthly_pay_slip/get_payment_information_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/monthly_pay_slip/get_summary_of_payment_list_model.dart';
|
||||
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
|
||||
import 'package:mohem_flutter_app/widgets/item_detail_view_widget.dart';
|
||||
|
||||
class MonthlyPaySlipScreen extends StatefulWidget {
|
||||
MonthlyPaySlipScreen({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_MonthlyPaySlipScreenState createState() {
|
||||
return _MonthlyPaySlipScreenState();
|
||||
}
|
||||
}
|
||||
|
||||
class _MonthlyPaySlipScreenState extends State<MonthlyPaySlipScreen> {
|
||||
List<GetPayslipList> paySlipList = [];
|
||||
List<GetSummaryOfPaymentList> summaryOfPaymentList = [];
|
||||
List<GetPaymentInformationList> paymentInformationList = [];
|
||||
List<GetDeductionsList> deductionList = [];
|
||||
List<GetEarningsList> earningList = [];
|
||||
int? selectedMonthIndex;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
getData();
|
||||
}
|
||||
|
||||
void getData() async {
|
||||
try {
|
||||
Utils.showLoading(context);
|
||||
paySlipList = await MonthlyPaySlipApiClient().getPaySlip();
|
||||
if (paySlipList.isNotEmpty) {
|
||||
selectedMonthIndex = 0;
|
||||
await getDataByActionContextID(paySlipList[selectedMonthIndex!].aCTIONCONTEXTID!);
|
||||
}
|
||||
Utils.hideLoading(context);
|
||||
setState(() {});
|
||||
} catch (ex) {
|
||||
Utils.hideLoading(context);
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
|
||||
Future getDataByActionContextID(int actionContextID, {bool showLoading = false}) async {
|
||||
try {
|
||||
if (showLoading) {
|
||||
Utils.showLoading(context);
|
||||
}
|
||||
List results = await Future.wait([
|
||||
MonthlyPaySlipApiClient().getSummaryOfPayment(actionContextID),
|
||||
MonthlyPaySlipApiClient().getPaymentInformation(actionContextID),
|
||||
MonthlyPaySlipApiClient().getDeductions(actionContextID),
|
||||
MonthlyPaySlipApiClient().getEarnings(actionContextID),
|
||||
]);
|
||||
summaryOfPaymentList = results[0];
|
||||
paymentInformationList = results[1];
|
||||
deductionList = results[2];
|
||||
earningList = results[3];
|
||||
if (showLoading) {
|
||||
Utils.hideLoading(context);
|
||||
setState(() {});
|
||||
}
|
||||
} catch (ex) {
|
||||
if (showLoading) {
|
||||
Utils.hideLoading(context);
|
||||
}
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
appBar: AppBarWidget(
|
||||
context,
|
||||
title: LocaleKeys.monthlyPaySlip.tr(),
|
||||
),
|
||||
body: Column(
|
||||
children: [
|
||||
if (selectedMonthIndex != null)
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Container(alignment: Alignment.centerLeft, child: LocaleKeys.month.tr().toText17(isBold: true, color: MyColors.darkIconColor)),
|
||||
Row(
|
||||
children: [
|
||||
DateFormat("MMMM-yyyy").format(DateFormat("MM/dd/yyyy").parse(paySlipList[selectedMonthIndex!].pAYMENTDATE!)).toText16(color: MyColors.greyACColor),
|
||||
const Icon(Icons.keyboard_arrow_down_rounded, color: MyColors.greyACColor),
|
||||
],
|
||||
).onPress(() async {
|
||||
int tempIndex = selectedMonthIndex!;
|
||||
showModalBottomSheet(
|
||||
context: context,
|
||||
builder: (cxt) {
|
||||
return Container(
|
||||
height: 200,
|
||||
color: Colors.white,
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.end,
|
||||
children: [
|
||||
LocaleKeys.ok.tr().toText16(color: MyColors.gradiantEndColor).paddingOnly(right: 21, top: 16).onPress(() {
|
||||
if (selectedMonthIndex != tempIndex) {
|
||||
selectedMonthIndex = tempIndex;
|
||||
Navigator.pop(context);
|
||||
getDataByActionContextID(paySlipList[selectedMonthIndex!].aCTIONCONTEXTID!, showLoading: true);
|
||||
}
|
||||
}),
|
||||
CupertinoPicker(
|
||||
itemExtent: 40,
|
||||
onSelectedItemChanged: (index) {
|
||||
tempIndex = index;
|
||||
},
|
||||
children: [for (int i = 0; i < paySlipList.length; i++) paySlipList[i].pERIODNAME!.toText16().center]).expanded,
|
||||
],
|
||||
),
|
||||
);
|
||||
});
|
||||
})
|
||||
],
|
||||
).paddingOnly(left: 21, right: 21),
|
||||
ListView(
|
||||
padding: const EdgeInsets.all(21),
|
||||
children: [
|
||||
if (summaryOfPaymentList.isNotEmpty) ...[paymentSummaryData(context)],
|
||||
if (earningList.isNotEmpty) ...[18.height, earningData(context)],
|
||||
if (deductionList.isNotEmpty) ...[18.height, deductionData(context)],
|
||||
if (paymentInformationList.isNotEmpty) ...[12.height, paymentInformationData(context)]
|
||||
],
|
||||
).expanded,
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget earningData(context) {
|
||||
List<TableRow> tableRow = [];
|
||||
tableRow.add(
|
||||
TableRow(
|
||||
children: [
|
||||
Utils.tableColumnTitle(LocaleKeys.particular.tr()),
|
||||
Utils.tableColumnTitle(LocaleKeys.amount.tr(), alignCenter: true),
|
||||
],
|
||||
),
|
||||
);
|
||||
for (int i = 0; i < earningList.length; i++) {
|
||||
tableRow.add(
|
||||
TableRow(children: [
|
||||
Utils.tableColumnValue('${earningList[i].eLEMENTNAME}'),
|
||||
Utils.tableColumnValue('${earningList[i].aMOUNT}', alignCenter: true),
|
||||
]),
|
||||
);
|
||||
}
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
LocaleKeys.earnings.tr().toSectionHeading(),
|
||||
12.height,
|
||||
Table(
|
||||
columnWidths: const {0: FlexColumnWidth(1.5), 1: FlexColumnWidth(1.0)},
|
||||
children: tableRow,
|
||||
).objectContainerView(),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget deductionData(context) {
|
||||
List<TableRow> tableRow = [];
|
||||
tableRow.add(
|
||||
TableRow(
|
||||
children: [
|
||||
Utils.tableColumnTitle(LocaleKeys.particular.tr()),
|
||||
Utils.tableColumnTitle(LocaleKeys.amount.tr(), alignCenter: true),
|
||||
],
|
||||
),
|
||||
);
|
||||
for (int i = 0; i < deductionList.length; i++) {
|
||||
tableRow.add(
|
||||
TableRow(children: [
|
||||
Utils.tableColumnValue('${deductionList[i].eLEMENTNAME}'),
|
||||
Utils.tableColumnValue('${deductionList[i].aMOUNT}', alignCenter: true),
|
||||
]),
|
||||
);
|
||||
}
|
||||
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
LocaleKeys.deductions.tr().toSectionHeading(),
|
||||
12.height,
|
||||
Table(
|
||||
columnWidths: const {0: FlexColumnWidth(1.5), 1: FlexColumnWidth(1.0)},
|
||||
children: tableRow,
|
||||
).objectContainerView(),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget paymentSummaryData(context) {
|
||||
List<TableRow> tableRow = [];
|
||||
tableRow.add(
|
||||
TableRow(
|
||||
children: [
|
||||
Utils.tableColumnTitle(LocaleKeys.particular.tr()),
|
||||
Utils.tableColumnTitle("%", alignCenter: true),
|
||||
Utils.tableColumnTitle(LocaleKeys.amount.tr(), alignCenter: true),
|
||||
],
|
||||
),
|
||||
);
|
||||
|
||||
tableRow.add(
|
||||
TableRow(children: [
|
||||
Utils.tableColumnValue(LocaleKeys.deductions.tr()),
|
||||
Utils.tableColumnValue('${summaryOfPaymentList[0].tOTALDEDUCTIONSPERCENTAGE}', alignCenter: true),
|
||||
Utils.tableColumnValue('${summaryOfPaymentList[0].tOTALDEDUCTIONSAMOUNT}', alignCenter: true),
|
||||
]),
|
||||
);
|
||||
tableRow.add(
|
||||
TableRow(children: [
|
||||
Utils.tableColumnValue(LocaleKeys.earnings.tr()),
|
||||
Utils.tableColumnValue('${summaryOfPaymentList[0].tOTALEARNINGSPERCENTAGE}', alignCenter: true),
|
||||
Utils.tableColumnValue('${summaryOfPaymentList[0].tOTALEARNINGSAMOUNT}', alignCenter: true),
|
||||
]),
|
||||
);
|
||||
tableRow.add(
|
||||
TableRow(children: [
|
||||
Utils.tableColumnValue(LocaleKeys.totalPayAmount.tr()),
|
||||
Utils.tableColumnValue('${summaryOfPaymentList[0].tOTALPAYPERCENTAGE}', alignCenter: true),
|
||||
Utils.tableColumnValue('${summaryOfPaymentList[0].tOTALPAYAMOUNT}', alignCenter: true),
|
||||
]),
|
||||
);
|
||||
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
LocaleKeys.summaryOfInformation.tr().toSectionHeading(),
|
||||
12.height,
|
||||
Table(
|
||||
columnWidths: const {0: FlexColumnWidth(2.0), 1: FlexColumnWidth(1.0), 2: FlexColumnWidth(1.0)},
|
||||
children: tableRow,
|
||||
).objectContainerView(),
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Widget paymentInformationData(context) {
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
LocaleKeys.paymentInformation.tr().toSectionHeading(),
|
||||
12.height,
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
ItemDetailView(LocaleKeys.paymentMethodName.tr(), paymentInformationList[0].pAYMENTMETHODNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.bankName.tr(), paymentInformationList[0].bANKNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.branchCode.tr(), paymentInformationList[0].bRANCHNAME ?? ""),
|
||||
ItemDetailView(LocaleKeys.accountNo.tr(), paymentInformationList[0].aCCOUNTNUMBER ?? ""),
|
||||
ItemDetailView(LocaleKeys.amount.tr(), paymentInformationList[0].aMOUNT ?? ""),
|
||||
],
|
||||
).objectContainerView(),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,466 @@
|
||||
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/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/dyanmic_forms/validate_eit_transaction_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/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';
|
||||
import 'package:easy_localization/src/public_ext.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 = [];
|
||||
SubmitContactTransactionList? submitContactTransactionList;
|
||||
dynamic args;
|
||||
String? date = "MM/DD/YYYY";
|
||||
// String actionType = "UPDATE";
|
||||
|
||||
GetApprovesList? getApprovesList;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
//
|
||||
super.initState();
|
||||
}
|
||||
|
||||
void callAddAndUpdateFamilyMember() async {
|
||||
try {
|
||||
Utils.showLoading(context);
|
||||
getBasicDetDffStructureList = await ProfileApiClient().getBasicDetDffStructure();
|
||||
getContactColsStructureList = await ProfileApiClient().getContactColsStructureList(args['actionType']);
|
||||
getContactDffStructureList = await ProfileApiClient().getContactDffStructureList();
|
||||
if (args['actionType'] == "ADD") {
|
||||
getBasicDetDffStructureList?.forEach((element) {
|
||||
element?.getContactDetailsList = new GetContactDetailsList();
|
||||
});
|
||||
getContactColsStructureList?.forEach((element) {
|
||||
element?.getContactDetailsList = new GetContactDetailsList();
|
||||
});
|
||||
getContactDffStructureList?.forEach((element) {
|
||||
element?.getContactDetailsList = new GetContactDetailsList();
|
||||
});
|
||||
} else if (args['actionType'] == "UPDATE") {
|
||||
getContactDetailsList = await ProfileApiClient().getContactDetailsList(args['relationID']);
|
||||
|
||||
getBasicDetDffStructureList?.forEach((element) {
|
||||
element?.getContactDetailsList = getContactDetailsList?.singleWhere((userDetail) => userDetail?.aPPLICATIONCOLUMNNAME == element?.aPPLICATIONCOLUMNNAME);
|
||||
});
|
||||
getContactColsStructureList?.forEach((element) {
|
||||
element?.getContactDetailsList = getContactDetailsList?.singleWhere((userDetail) => userDetail?.aPPLICATIONCOLUMNNAME == element?.aPPLICATIONCOLUMNNAME);
|
||||
});
|
||||
|
||||
getContactDffStructureList?.forEach((element) {
|
||||
element?.getContactDetailsList = getContactDetailsList?.singleWhere((userDetail) => userDetail?.aPPLICATIONCOLUMNNAME == element?.aPPLICATIONCOLUMNNAME);
|
||||
});
|
||||
}
|
||||
Utils.hideLoading(context);
|
||||
setState(() {});
|
||||
} catch (ex) {
|
||||
Utils.hideLoading(context);
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (args == null) {
|
||||
args = ModalRoute.of(context)!.settings.arguments;
|
||||
callAddAndUpdateFamilyMember();
|
||||
}
|
||||
return Scaffold(
|
||||
appBar: AppBarWidget(
|
||||
context,
|
||||
title: LocaleKeys.profile_familyDetails.tr(),
|
||||
),
|
||||
backgroundColor: MyColors.backgroundColor,
|
||||
bottomSheet: footer(),
|
||||
body: args['flag'] == 1
|
||||
? Column(
|
||||
children: [
|
||||
ListView(physics: const BouncingScrollPhysics(), padding: const EdgeInsets.all(21), children: [
|
||||
ListView.separated(
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
shrinkWrap: true,
|
||||
itemBuilder: (BuildContext cxt, int parentIndex) {
|
||||
return parseDynamicFormatTypeCols(getContactColsStructureList![parentIndex], parentIndex);
|
||||
},
|
||||
separatorBuilder: (cxt, index) => 0.height,
|
||||
itemCount: getContactColsStructureList!.length),
|
||||
12.height,
|
||||
ListView.separated(
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
shrinkWrap: true,
|
||||
itemBuilder: (BuildContext cxt, int parentIndex) {
|
||||
return parseDynamicFormatTypeBasicDetDff(getBasicDetDffStructureList![parentIndex], parentIndex);
|
||||
},
|
||||
separatorBuilder: (cxt, index) => 0.height,
|
||||
itemCount: getBasicDetDffStructureList!.length),
|
||||
ListView.separated(
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
shrinkWrap: true,
|
||||
itemBuilder: (BuildContext cxt, int parentIndex) {
|
||||
return parseDynamicFormatTypeContactDff(getContactDffStructureList![parentIndex], parentIndex);
|
||||
},
|
||||
separatorBuilder: (cxt, index) => 0.height,
|
||||
itemCount: getContactDffStructureList!.length),
|
||||
]).expanded,
|
||||
SizedBox(
|
||||
height: 50,
|
||||
),
|
||||
],
|
||||
)
|
||||
: args['flag'] == 2
|
||||
? Column(
|
||||
children: [
|
||||
getContactDetailsList!.isEmpty
|
||||
? LocaleKeys.noDataAvailable.tr().toText16().center
|
||||
: ListView(physics: const BouncingScrollPhysics(), padding: const EdgeInsets.all(21), children: [
|
||||
ListView.separated(
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
shrinkWrap: true,
|
||||
itemBuilder: (BuildContext cxt, int parentIndex) {
|
||||
return parseDynamicFormatTypeCols(getContactColsStructureList![parentIndex], parentIndex);
|
||||
},
|
||||
separatorBuilder: (cxt, index) => 0.height,
|
||||
itemCount: getContactColsStructureList!.length),
|
||||
12.height,
|
||||
ListView.separated(
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
shrinkWrap: true,
|
||||
itemBuilder: (BuildContext cxt, int parentIndex) {
|
||||
return parseDynamicFormatTypeBasicDetDff(getBasicDetDffStructureList![parentIndex], parentIndex);
|
||||
},
|
||||
separatorBuilder: (cxt, index) => 0.height,
|
||||
itemCount: getBasicDetDffStructureList!.length),
|
||||
ListView.separated(
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
shrinkWrap: true,
|
||||
itemBuilder: (BuildContext cxt, int parentIndex) {
|
||||
return parseDynamicFormatTypeContactDff(getContactDffStructureList![parentIndex], parentIndex);
|
||||
},
|
||||
separatorBuilder: (cxt, index) => 0.height,
|
||||
itemCount: getContactDffStructureList!.length),
|
||||
]).expanded,
|
||||
SizedBox(
|
||||
height: 50,
|
||||
),
|
||||
],
|
||||
)
|
||||
: Container(),
|
||||
);
|
||||
}
|
||||
|
||||
Widget parseDynamicFormatTypeCols(GetContactColsStructureList? model, int index) {
|
||||
if (model!.dISPLAYFLAG != "N") {
|
||||
} else {
|
||||
return const SizedBox();
|
||||
}
|
||||
if (model.dATATYPE == "VARCHAR2") {
|
||||
if (model!.objectValuesList?.isNotEmpty ?? false) {
|
||||
return PopupMenuButton(
|
||||
child: DynamicTextFieldWidget(
|
||||
(model!.sEGMENTPROMPT ?? "") + (model!.rEQUIREDFLAG == "Y" ? "*" : ""),
|
||||
model!.getContactDetailsList!.sEGMENTVALUEDSP ?? "",
|
||||
isEnable: false,
|
||||
isPopup: true,
|
||||
).paddingOnly(bottom: 12),
|
||||
itemBuilder: (_) => <PopupMenuItem<int>>[
|
||||
for (int i = 0; i < getContactColsStructureList[index]!.objectValuesList!.length; i++)
|
||||
PopupMenuItem<int>(child: Text(getContactColsStructureList[index]!.objectValuesList![i].mEANING.toString()), value: i),
|
||||
],
|
||||
onSelected: (int popupIndex) {
|
||||
model.getContactDetailsList!.sEGMENTVALUEDSP = getContactColsStructureList[index]!.objectValuesList![popupIndex].mEANING.toString();
|
||||
model.getContactDetailsList!.vARCHAR2VALUE = getContactColsStructureList[index]!.objectValuesList![popupIndex].cODE.toString();
|
||||
setState(() {});
|
||||
});
|
||||
} else {
|
||||
return DynamicTextFieldWidget(
|
||||
(model!.sEGMENTPROMPT ?? "") + (model!.rEQUIREDFLAG == "Y" ? "*" : ""),
|
||||
model!.getContactDetailsList!.sEGMENTVALUEDSP ?? "",
|
||||
onChange: (text) {
|
||||
model!.getContactDetailsList!.sEGMENTVALUEDSP = text;
|
||||
},
|
||||
).paddingOnly(bottom: 12);
|
||||
}
|
||||
} else if (model.dATATYPE == "DATE") {
|
||||
return DynamicTextFieldWidget(
|
||||
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
|
||||
model!.getContactDetailsList!.sEGMENTVALUEDSP ?? "",
|
||||
suffixIconData: Icons.calendar_today,
|
||||
isEnable: false,
|
||||
onTap: () async {
|
||||
DateTime dateValue = await _selectDate(context);
|
||||
date = DateFormat('yyyy/MM/dd').format(dateValue);
|
||||
model!.getContactDetailsList!.sEGMENTVALUEDSP = date;
|
||||
setState(() {});
|
||||
},
|
||||
).paddingOnly(bottom: 12);
|
||||
}
|
||||
return Container();
|
||||
}
|
||||
|
||||
Widget parseDynamicFormatTypeBasicDetDff(GetBasicDetDffStructureList? model, int index) {
|
||||
if (model!.dISPLAYFLAG != "N") {
|
||||
} else {
|
||||
return const SizedBox();
|
||||
}
|
||||
if (model!.fORMATTYPE == "C") {
|
||||
if (model!.eSERVICESVS?.isNotEmpty ?? false) {
|
||||
return PopupMenuButton(
|
||||
child: DynamicTextFieldWidget(
|
||||
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
|
||||
model.getContactDetailsList!.sEGMENTVALUEDSP ?? "",
|
||||
isEnable: false,
|
||||
isPopup: true,
|
||||
).paddingOnly(bottom: 12),
|
||||
itemBuilder: (_) => <PopupMenuItem<int>>[
|
||||
for (int i = 0; i < getBasicDetDffStructureList[index]!.eSERVICESVS!.length; i++)
|
||||
PopupMenuItem<int>(child: Text(getBasicDetDffStructureList[index]!.eSERVICESVS![i].vALUECOLUMNNAME.toString()), value: i),
|
||||
],
|
||||
onSelected: (int popupIndex) {
|
||||
model.getContactDetailsList!.sEGMENTVALUEDSP = getBasicDetDffStructureList[index]!.eSERVICESVS![popupIndex].vALUECOLUMNNAME.toString();
|
||||
model.getContactDetailsList!.vARCHAR2VALUE = getBasicDetDffStructureList[index]!.eSERVICESVS![popupIndex].iDCOLUMNNAME.toString();
|
||||
|
||||
setState(() {});
|
||||
});
|
||||
} else {
|
||||
return DynamicTextFieldWidget(
|
||||
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
|
||||
model.getContactDetailsList!.sEGMENTVALUEDSP ?? "",
|
||||
onChange: (text) {
|
||||
model.getContactDetailsList!.sEGMENTVALUEDSP = text;
|
||||
},
|
||||
).paddingOnly(bottom: 12);
|
||||
}
|
||||
} else if (model.fORMATTYPE == "X") {
|
||||
return DynamicTextFieldWidget(
|
||||
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
|
||||
model!.getContactDetailsList!.sEGMENTVALUEDSP ?? "",
|
||||
suffixIconData: Icons.calendar_today,
|
||||
isEnable: false,
|
||||
onTap: () async {
|
||||
DateTime dateValue = await _selectDate(context);
|
||||
date = DateFormat('yyyy/MM/dd').format(dateValue);
|
||||
model!.getContactDetailsList!.sEGMENTVALUEDSP = date;
|
||||
setState(() {});
|
||||
},
|
||||
).paddingOnly(bottom: 12);
|
||||
}
|
||||
return Container();
|
||||
}
|
||||
|
||||
Widget parseDynamicFormatTypeContactDff(GetContactDffStructureList? model, int index) {
|
||||
if (model!.dISPLAYFLAG != "N") {
|
||||
} else {
|
||||
return const SizedBox();
|
||||
}
|
||||
if (model!.fORMATTYPE == "C") {
|
||||
if (model.eSERVICESVS?.isNotEmpty ?? false) {
|
||||
return PopupMenuButton(
|
||||
child: DynamicTextFieldWidget(
|
||||
(model!.sEGMENTPROMPT ?? "") + (model!.rEQUIREDFLAG == "Y" ? "*" : ""),
|
||||
model!.getContactDetailsList!.sEGMENTVALUEDSP ?? "",
|
||||
isEnable: false,
|
||||
isPopup: true,
|
||||
).paddingOnly(bottom: 12),
|
||||
itemBuilder: (_) => <PopupMenuItem<int>>[
|
||||
for (int i = 0; i < getContactDffStructureList[index]!.eSERVICESVS!.length; i++)
|
||||
PopupMenuItem<int>(child: Text(getContactDffStructureList[index]!.eSERVICESVS![i].vALUECOLUMNNAME.toString()), value: i),
|
||||
],
|
||||
onSelected: (int popupIndex) {
|
||||
model.getContactDetailsList!.sEGMENTVALUEDSP = getContactDffStructureList[index]!.eSERVICESVS![popupIndex].vALUECOLUMNNAME.toString();
|
||||
model.getContactDetailsList!.vARCHAR2VALUE = getContactDffStructureList[index]!.eSERVICESVS![popupIndex].iDCOLUMNNAME.toString();
|
||||
setState(() {});
|
||||
});
|
||||
} else {
|
||||
return DynamicTextFieldWidget(
|
||||
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
|
||||
model.getContactDetailsList!.sEGMENTVALUEDSP ?? "",
|
||||
onChange: (text) {
|
||||
model.getContactDetailsList!.sEGMENTVALUEDSP = text;
|
||||
},
|
||||
).paddingOnly(bottom: 12);
|
||||
}
|
||||
} else if (model.fORMATTYPE == "X") {
|
||||
return DynamicTextFieldWidget(
|
||||
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
|
||||
model!.getContactDetailsList!.sEGMENTVALUEDSP ?? "",
|
||||
suffixIconData: Icons.calendar_today,
|
||||
isEnable: false,
|
||||
onTap: () async {
|
||||
DateTime dateValue = await _selectDate(context);
|
||||
date = DateFormat('yyyy/MM/dd').format(dateValue);
|
||||
model!.getContactDetailsList!.sEGMENTVALUEDSP = date;
|
||||
setState(() {});
|
||||
},
|
||||
).paddingOnly(bottom: 12);
|
||||
}
|
||||
return Container();
|
||||
}
|
||||
|
||||
DateTime selectedDate = DateTime.now();
|
||||
|
||||
Future<DateTime> _selectDate(BuildContext context) async {
|
||||
DateTime time = selectedDate;
|
||||
if (!Platform.isIOS) {
|
||||
await showCupertinoModalPopup(
|
||||
context: context,
|
||||
builder: (cxt) => Container(
|
||||
height: 250,
|
||||
color: Colors.white,
|
||||
child: CupertinoDatePicker(
|
||||
backgroundColor: Colors.white,
|
||||
mode: CupertinoDatePickerMode.date,
|
||||
onDateTimeChanged: (value) {
|
||||
if (value != null && value != selectedDate) {
|
||||
time = value;
|
||||
}
|
||||
},
|
||||
initialDateTime: selectedDate,
|
||||
),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
final DateTime? picked =
|
||||
await showDatePicker(context: context, initialDate: selectedDate, initialEntryMode: DatePickerEntryMode.calendarOnly, firstDate: DateTime(2015, 8), lastDate: DateTime(2101));
|
||||
if (picked != null && picked != selectedDate) {
|
||||
time = picked;
|
||||
}
|
||||
}
|
||||
return time;
|
||||
}
|
||||
|
||||
Widget footer() {
|
||||
return Container(
|
||||
color: MyColors.white,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Container(
|
||||
color: MyColors.gradiantEndColor,
|
||||
margin: EdgeInsets.only(bottom: 20, top: 20),
|
||||
padding: EdgeInsets.only(left: 50, right: 50),
|
||||
child: TextButton(
|
||||
style: TextButton.styleFrom(
|
||||
primary: MyColors.white,
|
||||
onSurface: MyColors.white,
|
||||
backgroundColor: MyColors.gradiantEndColor,
|
||||
),
|
||||
onPressed: () {
|
||||
submitUpdateForm();
|
||||
},
|
||||
child: Text(
|
||||
LocaleKeys.next.tr(),
|
||||
style: TextStyle(fontStyle: FontStyle.normal, fontSize: 16, color: Colors.white, fontWeight: FontWeight.w600),
|
||||
),
|
||||
)),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
void submitUpdateForm() async {
|
||||
try {
|
||||
List<Map<String, dynamic>> values1 = getBasicDetDffStructureList!.map((e) {
|
||||
String? dateVal = '';
|
||||
String? vatcherVal = '';
|
||||
int? numberVal;
|
||||
if (e!.fORMATTYPE == 'N') {
|
||||
dateVal = null;
|
||||
vatcherVal = null;
|
||||
numberVal = e!.getContactDetailsList!.nUMBERVALUE;
|
||||
} else if (e.fORMATTYPE == 'X') {
|
||||
dateVal = e!.getContactDetailsList!.dATEVALUE.toString();
|
||||
vatcherVal = null;
|
||||
numberVal = null;
|
||||
} else {
|
||||
dateVal = null;
|
||||
vatcherVal = e!.getContactDetailsList!.vARCHAR2VALUE.toString();
|
||||
numberVal = null;
|
||||
}
|
||||
return ValidateEitTransactionModel(dATEVALUE: dateVal, nAME: e.aPPLICATIONCOLUMNNAME, nUMBERVALUE: numberVal, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: vatcherVal.toString()).toJson();
|
||||
}).toList();
|
||||
List<Map<String, dynamic>> values2 = getContactDffStructureList!.map((e) {
|
||||
//String tempVar = e!.getContactDetailsList!.vARCHAR2VALUE ?? "";
|
||||
String? dateVal = '';
|
||||
String? vatcherVal = '';
|
||||
int? numberVal;
|
||||
if (e!.fORMATTYPE == 'N') {
|
||||
dateVal = null;
|
||||
vatcherVal = null;
|
||||
numberVal = e!.getContactDetailsList!.nUMBERVALUE;
|
||||
} else if (e.fORMATTYPE == 'X') {
|
||||
dateVal = e!.getContactDetailsList!.dATEVALUE.toString();
|
||||
vatcherVal = null;
|
||||
numberVal = null;
|
||||
} else {
|
||||
dateVal = null;
|
||||
numberVal = null;
|
||||
vatcherVal = e!.getContactDetailsList!.vARCHAR2VALUE.toString();
|
||||
}
|
||||
return ValidateEitTransactionModel(dATEVALUE: dateVal, nAME: e.aPPLICATIONCOLUMNNAME, nUMBERVALUE: numberVal, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: vatcherVal.toString()).toJson();
|
||||
}).toList();
|
||||
List<Map<String, dynamic>> values3 = getContactColsStructureList!.map((e) {
|
||||
// String tempVar = e!.getContactDetailsList!.sEGMENTVALUEDSP ?? "";
|
||||
String? dateVal = '';
|
||||
String? vatcherVal = '';
|
||||
int? numberVal;
|
||||
if (e!.dATATYPE == 'VARCHAR2') {
|
||||
dateVal = null;
|
||||
numberVal = null;
|
||||
vatcherVal = e!.getContactDetailsList!.vARCHAR2VALUE.toString();
|
||||
} else if (e.dATATYPE == 'DATE') {
|
||||
dateVal = e!.getContactDetailsList!.dATEVALUE.toString();
|
||||
vatcherVal = null;
|
||||
numberVal = null;
|
||||
} else if (e.dATATYPE == 'NUMBER') {
|
||||
dateVal = null;
|
||||
vatcherVal = null;
|
||||
numberVal = e!.getContactDetailsList!.nUMBERVALUE;
|
||||
} else {}
|
||||
return ValidateEitTransactionModel(dATEVALUE: dateVal, nAME: e.aPPLICATIONCOLUMNNAME, nUMBERVALUE: numberVal, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: vatcherVal.toString()).toJson();
|
||||
}).toList();
|
||||
List<Map<String, dynamic>> valuesFinal = [...values1, ...values2, ...values3];
|
||||
Utils.showLoading(context);
|
||||
if (args['actionType'] == "ADD") {
|
||||
var relationID = null;
|
||||
submitContactTransactionList = await ProfileApiClient().submetConatctTransactionAddAndUpdate(args['actionType'], relationID, valuesFinal);
|
||||
} else if (args['actionType'] == "UPDATE") {
|
||||
submitContactTransactionList = await ProfileApiClient().submetConatctTransactionAddAndUpdate(args['actionType'], args['relationID'], valuesFinal);
|
||||
}
|
||||
var transactionId = submitContactTransactionList!.pTRANSACTIONID;
|
||||
var itemKey = submitContactTransactionList!.pITEMKEY;
|
||||
Utils.hideLoading(context);
|
||||
Navigator.pushNamed(context, AppRoutes.requestSubmitScreen,
|
||||
arguments: RequestSubmitScreenParams(LocaleKeys.profile_familyDetails.tr(), transactionId!.toInt(), itemKey.toString(), 'family_member'));
|
||||
setState(() {});
|
||||
} catch (ex) {
|
||||
Utils.hideLoading(context);
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,74 +0,0 @@
|
||||
|
||||
|
||||
import 'package:easy_localization/src/public_ext.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/dialogs/otp_dialog.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/get_employee_basic_details.model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart';
|
||||
import 'package:mohem_flutter_app/ui/profile/dynamic_screens/dynamic_input_familyMembers_screen.dart';
|
||||
import 'package:mohem_flutter_app/ui/profile/dynamic_screens/dynamic_input_profile_screen.dart';
|
||||
import 'package:mohem_flutter_app/ui/profile/profile.dart';
|
||||
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
|
||||
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
|
||||
|
||||
class DeleteFamilyMember extends StatefulWidget {
|
||||
const DeleteFamilyMember({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_DeleteFamilyMemberState createState() => _DeleteFamilyMemberState();
|
||||
}
|
||||
|
||||
class _DeleteFamilyMemberState extends State<DeleteFamilyMember> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBarWidget(
|
||||
context,
|
||||
title: "Dependents And Beneficiaries",
|
||||
),
|
||||
backgroundColor: MyColors.backgroundColor,
|
||||
bottomSheet: footer(),
|
||||
body:Column(
|
||||
children: [
|
||||
|
||||
],
|
||||
)
|
||||
|
||||
);
|
||||
}
|
||||
footer() {
|
||||
return Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Container(
|
||||
color: MyColors.gradiantEndColor,
|
||||
// margin: EdgeInsets.only(left: 50,right: 20),
|
||||
padding: EdgeInsets.only(left: 50,right: 50),
|
||||
child: TextButton(
|
||||
style: TextButton.styleFrom(
|
||||
primary:MyColors.white,
|
||||
onSurface: MyColors.white,
|
||||
backgroundColor: MyColors.gradiantEndColor,
|
||||
),
|
||||
onPressed: (){},
|
||||
child: Text('Next',
|
||||
style: TextStyle(
|
||||
fontStyle: FontStyle.normal,
|
||||
fontSize: 16,
|
||||
color: Colors.white,
|
||||
fontWeight: FontWeight.w600
|
||||
),),
|
||||
)
|
||||
),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,152 @@
|
||||
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/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/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 DeleteFamilyMember extends StatefulWidget {
|
||||
int relationId;
|
||||
DeleteFamilyMember(@required this.relationId, {Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_DeleteFamilyMemberState createState() => _DeleteFamilyMemberState();
|
||||
}
|
||||
|
||||
class _DeleteFamilyMemberState extends State<DeleteFamilyMember> {
|
||||
String pFunctionName = "HR_PERINFO_SS";
|
||||
String actionType = "DELETE";
|
||||
// int? contactRelationId;
|
||||
String? date = "MM/DD/YYYY";
|
||||
String? datePar;
|
||||
// String? itemKey;
|
||||
|
||||
SubmitContactTransactionList? submitContactTransactionList;
|
||||
GetApprovesList? getApprovesList;
|
||||
|
||||
//int? relationId;
|
||||
@override
|
||||
void initState() {
|
||||
print(widget.relationId);
|
||||
super.initState();
|
||||
}
|
||||
|
||||
void deleteFamilyMember(datePar) async {
|
||||
try {
|
||||
Utils.showLoading(context);
|
||||
submitContactTransactionList = await ProfileApiClient().submetConatctTransaction(pFunctionName.toString(), actionType.toString(), widget.relationId!.toInt(), datePar.toString());
|
||||
var transactionId = submitContactTransactionList!.pTRANSACTIONID;
|
||||
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);
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBarWidget(
|
||||
context,
|
||||
title: LocaleKeys.profile_familyDetails.tr(),
|
||||
),
|
||||
backgroundColor: MyColors.backgroundColor,
|
||||
bottomSheet: footer(),
|
||||
body: Column(
|
||||
children: [
|
||||
DynamicTextFieldWidget(
|
||||
LocaleKeys.endDate.tr(), date.toString(),
|
||||
// suffixIconData: Icons.calendar_today,
|
||||
isEnable: false,
|
||||
onTap: () async {
|
||||
DateTime dateValue = await _selectDate(context);
|
||||
// DateTime date1 = DateTime(dateValue.year, dateValue.month, dateValue.day);
|
||||
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);
|
||||
// }
|
||||
},
|
||||
).paddingOnly(bottom: 12)
|
||||
],
|
||||
));
|
||||
}
|
||||
|
||||
Widget footer() {
|
||||
return Container(
|
||||
color: MyColors.white,
|
||||
child: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Container(
|
||||
color: MyColors.gradiantEndColor,
|
||||
margin: EdgeInsets.only(bottom: 20, top: 20),
|
||||
padding: EdgeInsets.only(left: 50, right: 50),
|
||||
child: TextButton(
|
||||
style: TextButton.styleFrom(
|
||||
primary: MyColors.white,
|
||||
onSurface: MyColors.white,
|
||||
backgroundColor: MyColors.gradiantEndColor,
|
||||
),
|
||||
onPressed: () {
|
||||
deleteFamilyMember(datePar);
|
||||
},
|
||||
child: Text(
|
||||
LocaleKeys.next.tr(),
|
||||
style: TextStyle(fontStyle: FontStyle.normal, fontSize: 16, color: Colors.white, fontWeight: FontWeight.w600),
|
||||
),
|
||||
)),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
DateTime selectedDate = DateTime.now();
|
||||
|
||||
Future<DateTime> _selectDate(BuildContext context) async {
|
||||
DateTime time = selectedDate;
|
||||
if (!Platform.isIOS) {
|
||||
await showCupertinoModalPopup(
|
||||
context: context,
|
||||
builder: (cxt) => Container(
|
||||
height: 250,
|
||||
color: Colors.white,
|
||||
child: CupertinoDatePicker(
|
||||
backgroundColor: Colors.white,
|
||||
mode: CupertinoDatePickerMode.date,
|
||||
onDateTimeChanged: (value) {
|
||||
if (value != null && value != selectedDate) {
|
||||
time = value;
|
||||
}
|
||||
},
|
||||
initialDateTime: selectedDate,
|
||||
),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
final DateTime? picked =
|
||||
await showDatePicker(context: context, initialDate: selectedDate, initialEntryMode: DatePickerEntryMode.calendarOnly, firstDate: DateTime(2015, 8), lastDate: DateTime(2101));
|
||||
if (picked != null && picked != selectedDate) {
|
||||
time = picked;
|
||||
}
|
||||
}
|
||||
return time;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,336 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:easy_localization/easy_localization.dart';
|
||||
import 'package:flutter/cupertino.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/api/my_attendance_api_client.dart';
|
||||
import 'package:mohem_flutter_app/api/profile_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/dyanmic_forms/get_set_values_request_model.dart';
|
||||
import 'package:mohem_flutter_app/models/dyanmic_forms/validate_eit_transaction_model.dart';
|
||||
import 'package:mohem_flutter_app/models/generic_response_model.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/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_address_dff_structure_list.dart';
|
||||
import 'package:mohem_flutter_app/models/profile/get_countries_list_model.dart';
|
||||
import 'package:mohem_flutter_app/models/profile/submit_address_transaction.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/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 DynamicProfileParams {
|
||||
String title;
|
||||
String dynamicId;
|
||||
String uRL;
|
||||
String requestID;
|
||||
String colsURL;
|
||||
int correctOrNew;
|
||||
List<GetEmployeeAddressList>? getEmployeeAddressList;
|
||||
|
||||
DynamicProfileParams(this.title, this.dynamicId,
|
||||
{this.uRL = 'GET_EIT_DFF_STRUCTURE', this.requestID = '', this.colsURL = '', this.getEmployeeAddressList = const <GetEmployeeAddressList>[], this.correctOrNew = 2});
|
||||
}
|
||||
|
||||
class DynamicInputScreenAddress extends StatefulWidget {
|
||||
DynamicInputScreenAddress({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_DynamicInputScreenState createState() {
|
||||
return _DynamicInputScreenState();
|
||||
}
|
||||
}
|
||||
|
||||
class _DynamicInputScreenState extends State<DynamicInputScreenAddress> {
|
||||
GenericResponseModel? genericResponseModel;
|
||||
List<GetAddressDffStructureList>? getAddressDffStructureList;
|
||||
SubmitAddressTransaction submitPhoneNumbers = SubmitAddressTransaction();
|
||||
DynamicProfileParams? dynamicParams;
|
||||
List<GetCountriesListModel> countriesList = [];
|
||||
String dESCFLEXCONTEXTCODE = "";
|
||||
String countryCode = 'SA';
|
||||
String effectiveDate = '';
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
}
|
||||
|
||||
void getTransactionsStructure() async {
|
||||
try {
|
||||
Utils.showLoading(context);
|
||||
genericResponseModel = await ProfileApiClient().getDffStructure(dynamicParams!.dynamicId, dynamicParams!.uRL, dynamicParams!.requestID);
|
||||
getAddressDffStructureList = genericResponseModel?.getAddressDffStructureList ?? [];
|
||||
|
||||
if (dynamicParams!.correctOrNew == 1) {
|
||||
getAddressDffStructureList?.forEach((element) {
|
||||
dynamicParams!.getEmployeeAddressList!.forEach((userDetail) {
|
||||
if (userDetail.aPPLICATIONCOLUMNNAME == element.aPPLICATIONCOLUMNNAME) {
|
||||
element.getEmployeeAddressList = userDetail;
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
getAddressDffStructureList!.insert(0, GetAddressDffStructureList(fORMATTYPE: 'X', sEGMENTPROMPT: LocaleKeys.profile_effectiveDate.tr()));
|
||||
countriesList = await ProfileApiClient().getCountriesList();
|
||||
List<ESERVICESVS> eSerivceList = [];
|
||||
countriesList.forEach((element) {
|
||||
eSerivceList.add(ESERVICESVS(
|
||||
dESCRIPTION: element.cOUNTRYCODE,
|
||||
vALUECOLUMNNAME: element.cOUNTRYNAME,
|
||||
));
|
||||
});
|
||||
getAddressDffStructureList!
|
||||
.insert(1, GetAddressDffStructureList(fORMATTYPE: 'C', sEGMENTPROMPT: LocaleKeys.profile_country.tr(), eSERVICESVS: eSerivceList, getEmployeeAddressList: GetEmployeeAddressList()));
|
||||
}
|
||||
print(getAddressDffStructureList);
|
||||
// genericResponseModel = await ProfileApiClient().getColStructure(dynamicParams!.dynamicId, 'GET_BASIC_DET_COLS_STRUCTURE', dynamicParams!.requestID);
|
||||
// getBasicDetColsStructureList = genericResponseModel?.getBasicDetColsStructureList ?? [];
|
||||
// getBasicDetColsStructureList?.forEach((element) {
|
||||
// element.userBasicDetail = dynamicParams!.getEmployeeBasicDetailsList!.singleWhere((userDetail) => userDetail.aPPLICATIONCOLUMNNAME == element.aPPLICATIONCOLUMNNAME);
|
||||
// });
|
||||
Utils.hideLoading(context);
|
||||
setState(() {});
|
||||
} catch (ex) {
|
||||
Utils.hideLoading(context);
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
|
||||
void calGetValueSetValues(GetAddressDffStructureList structureList) async {
|
||||
try {
|
||||
Utils.showLoading(context);
|
||||
String segmentId = structureList.cHILDSEGMENTSVS!;
|
||||
List<GetAddressDffStructureList> filteredList = getAddressDffStructureList?.where((element) => element.cHILDSEGMENTSVS == segmentId).toList() ?? [];
|
||||
List<Map<String, dynamic>> values = filteredList
|
||||
.map((e) => GetSetValuesRequestModel(
|
||||
sEGMENTNAME: e.sEGMENTNAME, vALUECOLUMNNAME: e.eSERVICESDV!.pVALUECOLUMNNAME, dESCRIPTION: "", iDCOLUMNNAME: e.eSERVICESDV!.pIDCOLUMNNAME, fLEXVALUESETNAME: e.fLEXVALUESETNAME)
|
||||
.toJson())
|
||||
.toList();
|
||||
ESERVICESVS genericResponseModel = await MyAttendanceApiClient().getValueSetValues(structureList.cHILDSEGMENTSVS!, structureList.dESCFLEXCONTEXTCODE!, structureList.dESCFLEXNAME!, values);
|
||||
|
||||
int index = getAddressDffStructureList!.indexWhere((element) => element.sEGMENTNAME == structureList.cHILDSEGMENTSVS);
|
||||
getAddressDffStructureList![index].eSERVICESVS!.add(genericResponseModel);
|
||||
// getEitDffStructureList = genericResponseModel?.getEITDFFStructureList ?? [];
|
||||
//getEitDffStructureList = getEitDffStructureList!.where((element) => element.dISPLAYFLAG != "N").toList();
|
||||
Utils.hideLoading(context);
|
||||
setState(() {});
|
||||
} catch (ex) {
|
||||
Utils.hideLoading(context);
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (dynamicParams == null) {
|
||||
dynamicParams = ModalRoute.of(context)!.settings.arguments as DynamicProfileParams;
|
||||
getTransactionsStructure();
|
||||
}
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
appBar: AppBarWidget(
|
||||
context,
|
||||
title: dynamicParams!.title,
|
||||
),
|
||||
body: Column(
|
||||
children: [
|
||||
(getAddressDffStructureList == null
|
||||
? const SizedBox()
|
||||
: (getAddressDffStructureList!.isEmpty
|
||||
? LocaleKeys.noDataAvailable.tr().toText16().center
|
||||
: ListView(
|
||||
physics: const BouncingScrollPhysics(),
|
||||
padding: const EdgeInsets.all(21),
|
||||
children: [
|
||||
12.height,
|
||||
ListView.separated(
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
shrinkWrap: true,
|
||||
itemBuilder: (BuildContext cxt, int parentIndex) {
|
||||
return parseDynamicFormatType(getAddressDffStructureList![parentIndex], parentIndex);
|
||||
},
|
||||
separatorBuilder: (cxt, index) => 0.height,
|
||||
itemCount: getAddressDffStructureList!.length),
|
||||
],
|
||||
)))
|
||||
.expanded,
|
||||
// 12.height,
|
||||
DefaultButton(
|
||||
LocaleKeys.next.tr(),
|
||||
(getAddressDffStructureList ?? []).isEmpty ? null : () => {validateTransaction()},
|
||||
).insideContainer,
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget parseDynamicFormatType(GetAddressDffStructureList model, int index) {
|
||||
if (model.dISPLAYFLAG != "N") {
|
||||
if (model.fORMATTYPE == "C") {
|
||||
if (model.eSERVICESVS?.isNotEmpty ?? false) {
|
||||
return PopupMenuButton(
|
||||
child: DynamicTextFieldWidget(
|
||||
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
|
||||
model?.getEmployeeAddressList!.sEGMENTVALUEDSP ?? "",
|
||||
isEnable: false,
|
||||
isPopup: true,
|
||||
).paddingOnly(bottom: 12),
|
||||
itemBuilder: (_) => <PopupMenuItem<int>>[
|
||||
for (int i = 0; i < model.eSERVICESVS!.length; i++) PopupMenuItem<int>(child: Text(model.eSERVICESVS![i].vALUECOLUMNNAME!), value: i),
|
||||
],
|
||||
onSelected: (int popupIndex) {
|
||||
model?.getEmployeeAddressList!.sEGMENTVALUEDSP = model.eSERVICESVS![popupIndex].vALUECOLUMNNAME;
|
||||
model?.getEmployeeAddressList!.vARCHAR2VALUE = model.eSERVICESVS![popupIndex].dESCRIPTION;
|
||||
setState(() {});
|
||||
});
|
||||
}
|
||||
|
||||
return DynamicTextFieldWidget(
|
||||
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
|
||||
model.getEmployeeAddressList?.sEGMENTVALUEDSP ?? "",
|
||||
isReadOnly: model.rEADONLY == "Y",
|
||||
onChange: (text) {
|
||||
model.getEmployeeAddressList?.sEGMENTVALUEDSP = text;
|
||||
},
|
||||
).paddingOnly(bottom: 12);
|
||||
} else if (model.fORMATTYPE == "N") {
|
||||
if (model.eSERVICESVS?.isNotEmpty ?? false) {
|
||||
return PopupMenuButton(
|
||||
child: DynamicTextFieldWidget((model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""), model?.getEmployeeAddressList!.sEGMENTVALUEDSP ?? "",
|
||||
isEnable: false, isPopup: true, isInputTypeNum: true)
|
||||
.paddingOnly(bottom: 12),
|
||||
itemBuilder: (_) => <PopupMenuItem<int>>[
|
||||
for (int i = 0; i < model.eSERVICESVS!.length; i++) PopupMenuItem<int>(child: Text(model.eSERVICESVS![i].dESCRIPTION!), value: i),
|
||||
],
|
||||
onSelected: (int popupIndex) {
|
||||
model?.getEmployeeAddressList!.sEGMENTVALUEDSP = model.eSERVICESVS![popupIndex].dESCRIPTION;
|
||||
model?.getEmployeeAddressList!.vARCHAR2VALUE = model.eSERVICESVS![popupIndex].vALUECOLUMNNAME;
|
||||
setState(() {});
|
||||
});
|
||||
}
|
||||
|
||||
return DynamicTextFieldWidget(
|
||||
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
|
||||
model.getEmployeeAddressList?.sEGMENTVALUEDSP ?? "",
|
||||
isReadOnly: model.rEADONLY == "Y",
|
||||
onChange: (text) {
|
||||
model.getEmployeeAddressList?.sEGMENTVALUEDSP = text;
|
||||
},
|
||||
).paddingOnly(bottom: 12);
|
||||
} else if (model.fORMATTYPE == "X") {
|
||||
return DynamicTextFieldWidget(
|
||||
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
|
||||
model.eSERVICESDV?.pIDCOLUMNNAME ?? (getAddressDffStructureList![index].dESCFLEXCONTEXTNAME ?? ""),
|
||||
suffixIconData: Icons.calendar_today,
|
||||
isEnable: false,
|
||||
onTap: () async {
|
||||
DateTime date = await _selectDate(context);
|
||||
DateTime date1 = DateTime(date.year, date.month, date.day);
|
||||
getAddressDffStructureList![index].dESCFLEXCONTEXTNAME = date.toString();
|
||||
ESERVICESDV eservicesdv = ESERVICESDV(
|
||||
pIDCOLUMNNAME: DateFormat('yyyy-MM-dd').format(date1),
|
||||
pRETURNMSG: "null",
|
||||
pRETURNSTATUS: getAddressDffStructureList![index].dEFAULTVALUE,
|
||||
pVALUECOLUMNNAME: DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date));
|
||||
getAddressDffStructureList![index].eSERVICESDV = eservicesdv;
|
||||
setState(() {});
|
||||
if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) {
|
||||
calGetValueSetValues(model);
|
||||
}
|
||||
},
|
||||
).paddingOnly(bottom: 12);
|
||||
}
|
||||
|
||||
return const SizedBox();
|
||||
} else {
|
||||
return const SizedBox();
|
||||
}
|
||||
}
|
||||
|
||||
void validateTransaction() async {
|
||||
try {
|
||||
Utils.showLoading(context);
|
||||
List<Map<String, dynamic>> values = getAddressDffStructureList!.map((e) {
|
||||
String tempVar = '';
|
||||
if (e.fORMATTYPE == "X") {
|
||||
// for date format type, date format is changed
|
||||
tempVar = e.eSERVICESDV?.pVALUECOLUMNNAME ?? "";
|
||||
|
||||
if (tempVar.isNotEmpty) {
|
||||
DateTime date = DateFormat('yyyy-MM-dd').parse(tempVar);
|
||||
tempVar = DateFormat('dd/MMM/yyy').format(date);
|
||||
if (e.aPPLICATIONCOLUMNNAME == null) {
|
||||
effectiveDate = tempVar;
|
||||
}
|
||||
}
|
||||
} else if (e.eSERVICESVS?.isNotEmpty ?? false) {
|
||||
tempVar = e.getEmployeeAddressList!.vARCHAR2VALUE!;
|
||||
if (e.aPPLICATIONCOLUMNNAME == null) {
|
||||
countryCode = tempVar;
|
||||
}
|
||||
} else {
|
||||
tempVar = e.getEmployeeAddressList!.sEGMENTVALUEDSP ?? "";
|
||||
}
|
||||
|
||||
return ValidateEitTransactionModel(dATEVALUE: null, nAME: e.aPPLICATIONCOLUMNNAME, nUMBERVALUE: null, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: tempVar.toString()).toJson();
|
||||
}).toList();
|
||||
|
||||
submitPhoneNumbers = await ProfileApiClient().submitAddressTransaction(dESCFLEXCONTEXTCODE, dynamicParams!.dynamicId, values, dynamicParams!.correctOrNew, countryCode, effectiveDate);
|
||||
print(values);
|
||||
Utils.hideLoading(context);
|
||||
|
||||
Navigator.pushNamed(context, AppRoutes.requestSubmitScreen,
|
||||
arguments: RequestSubmitScreenParams(dynamicParams!.title, submitPhoneNumbers.pTRANSACTIONID!, submitPhoneNumbers.pITEMKEY!, 'address'));
|
||||
} catch (ex) {
|
||||
Utils.hideLoading(context);
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
|
||||
DateTime selectedDate = DateTime.now();
|
||||
|
||||
Future<DateTime> _selectDate(BuildContext context) async {
|
||||
DateTime time = selectedDate;
|
||||
if (!Platform.isIOS) {
|
||||
await showCupertinoModalPopup(
|
||||
context: context,
|
||||
builder: (cxt) => Container(
|
||||
height: 250,
|
||||
color: Colors.white,
|
||||
child: CupertinoDatePicker(
|
||||
backgroundColor: Colors.white,
|
||||
mode: CupertinoDatePickerMode.date,
|
||||
onDateTimeChanged: (value) {
|
||||
if (value != null && value != selectedDate) {
|
||||
time = value;
|
||||
}
|
||||
},
|
||||
initialDateTime: selectedDate,
|
||||
),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
final DateTime? picked =
|
||||
await showDatePicker(context: context, initialDate: selectedDate, initialEntryMode: DatePickerEntryMode.calendarOnly, firstDate: DateTime(2015, 8), lastDate: DateTime(2101));
|
||||
if (picked != null && picked != selectedDate) {
|
||||
time = picked;
|
||||
}
|
||||
}
|
||||
return time;
|
||||
}
|
||||
}
|
||||
@ -1,289 +0,0 @@
|
||||
import 'package:easy_localization/src/public_ext.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/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/models/get_employee_basic_details.model.dart';
|
||||
import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart';
|
||||
|
||||
class Profile extends StatefulWidget {
|
||||
const Profile({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_ProfileState createState() => _ProfileState();
|
||||
}
|
||||
|
||||
class _ProfileState extends State<Profile> {
|
||||
String? fullName = "";
|
||||
String? maritalStatus = "";
|
||||
String? birthDate = "";
|
||||
String? civilIdentityNumber = "";
|
||||
String? emailAddress = "";
|
||||
String? employeeNo = "";
|
||||
|
||||
List<GetEmployeeBasicDetailsList> getEmployeeBasicDetailsList = [];
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
getEmployeeBasicDetails();
|
||||
basicDetails();
|
||||
}
|
||||
|
||||
void getEmployeeBasicDetails() async {
|
||||
try {
|
||||
Utils.showLoading(context);
|
||||
getEmployeeBasicDetailsList = await ProfileApiClient().getEmployeeBasicDetails();
|
||||
Utils.hideLoading(context);
|
||||
basicDetails();
|
||||
print("getEmployeeBasicDetailsList.length");
|
||||
print(getEmployeeBasicDetailsList.length);
|
||||
setState(() {});
|
||||
} catch (ex) {
|
||||
Utils.hideLoading(context);
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
|
||||
basicDetails() {
|
||||
for (int i = 0; i < getEmployeeBasicDetailsList.length; i++) {
|
||||
if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'FULL_NAME') {
|
||||
fullName = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
|
||||
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'MARITAL_STATUS') {
|
||||
maritalStatus = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
|
||||
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'DATE_OF_BIRTH') {
|
||||
birthDate = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
|
||||
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'NATIONAL_IDENTIFIER') {
|
||||
civilIdentityNumber = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
|
||||
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'EMAIL_ADDRESS') {
|
||||
emailAddress = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
|
||||
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'EMPLOYEE_NUMBER') {
|
||||
employeeNo = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBar(
|
||||
backgroundColor: MyColors.lightGreenColor,
|
||||
leading: Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
||||
children: [
|
||||
IconButton(
|
||||
icon: const Icon(
|
||||
Icons.arrow_back_ios,
|
||||
color: MyColors.backgroundBlackColor,
|
||||
),
|
||||
onPressed: () => Navigator.pop(context),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
backgroundColor: MyColors.lightGreenColor,
|
||||
body: Stack(children: [
|
||||
Align(
|
||||
alignment: Alignment.topRight,
|
||||
child: Container(
|
||||
height: 30,
|
||||
width: 80,
|
||||
padding: EdgeInsets.only(left: 10.0, right: 10.0, top: 5, bottom: 5),
|
||||
decoration: BoxDecoration(
|
||||
border: Border.all(
|
||||
color: MyColors.gradiantEndColor,
|
||||
style: BorderStyle.solid,
|
||||
),
|
||||
color: MyColors.gradiantEndColor,
|
||||
borderRadius: BorderRadius.circular(100.0)),
|
||||
child: InkWell(
|
||||
onTap: () {},
|
||||
child: RichText(
|
||||
text: TextSpan(
|
||||
children: [
|
||||
WidgetSpan(
|
||||
child: Icon(
|
||||
Icons.image,
|
||||
size: 20,
|
||||
color: Colors.white,
|
||||
),
|
||||
),
|
||||
TextSpan(
|
||||
text: " Edit",
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
)
|
||||
),
|
||||
),
|
||||
Container(
|
||||
width: double.infinity,
|
||||
margin: EdgeInsets.only(top: 48),
|
||||
height: double.infinity,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.white,
|
||||
borderRadius: BorderRadius.only(topLeft: Radius.circular(30.0), topRight: Radius.circular(30.0)),
|
||||
),
|
||||
child: Column(
|
||||
children: [
|
||||
"${fullName}".toText20(isBold: true, color: MyColors.blackColor),
|
||||
"${employeeNo}".toText12(isBold: false, color: MyColors.lightGrayColor),
|
||||
"${emailAddress}".toText12(isBold: false, color: MyColors.black),
|
||||
SizedBox(
|
||||
height: 5,
|
||||
),
|
||||
Divider(
|
||||
color: MyColors.lightGreyE6Color,
|
||||
height: 20,
|
||||
thickness: 8,
|
||||
indent: 0,
|
||||
endIndent: 0,
|
||||
),
|
||||
|
||||
Container(
|
||||
padding: EdgeInsets.only(left: 10.0),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: <Widget>[
|
||||
InkWell(
|
||||
onTap: () {
|
||||
|
||||
},
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
|
||||
SizedBox(
|
||||
width: 15,
|
||||
),
|
||||
"Personal Information".toText16(isBold: true, color: MyColors.grey3AColor),
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 5,
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
|
||||
},
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
|
||||
SizedBox(
|
||||
width: 15,
|
||||
),
|
||||
"Basic Details".toText16(isBold: true, color: MyColors.grey3AColor),
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 5,
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
|
||||
},
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
|
||||
SizedBox(
|
||||
width: 20,
|
||||
),
|
||||
"Contact Details".toText16(isBold: true, color: MyColors.grey3AColor),
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 5,
|
||||
),
|
||||
InkWell(
|
||||
onTap: () {
|
||||
|
||||
},
|
||||
child: Row(
|
||||
children: <Widget>[
|
||||
|
||||
SizedBox(
|
||||
width: 20,
|
||||
),
|
||||
"Family Members".toText16(isBold: true, color: MyColors.grey3AColor),
|
||||
],
|
||||
),
|
||||
),
|
||||
SizedBox(
|
||||
height: 5,
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
).paddingOnly( top: 35, bottom: 36),
|
||||
),
|
||||
Align(
|
||||
alignment: Alignment.topCenter,
|
||||
child: SizedBox(
|
||||
child: CircleAvatar(
|
||||
radius: 40.0,
|
||||
backgroundColor: Colors.white,
|
||||
child: CircleAvatar(
|
||||
child: Align(
|
||||
alignment: Alignment.bottomRight,
|
||||
// child: CircleAvatar(
|
||||
// backgroundColor: Colors.white,
|
||||
// radius: 12.0,
|
||||
// child: Icon(
|
||||
// Icons.camera_alt,
|
||||
// size: 15.0,
|
||||
// color: Color(0xFF404040),
|
||||
// ),
|
||||
// ),
|
||||
),
|
||||
radius: 38.0,
|
||||
// url:"",
|
||||
),
|
||||
),
|
||||
)),
|
||||
])
|
||||
// Container(
|
||||
// margin: const EdgeInsets.only(top:50),
|
||||
// decoration: const BoxDecoration(
|
||||
// color: Colors.white,
|
||||
// borderRadius: BorderRadius.only(
|
||||
// topLeft: Radius.circular(30.0),
|
||||
// topRight: Radius.circular(30.0))
|
||||
// ),
|
||||
// // color: MyColors.white,
|
||||
// child: Stack(
|
||||
// children: [
|
||||
// Container(
|
||||
// height: 30,
|
||||
// color: MyColors.lightGreenColor,
|
||||
// margin: const EdgeInsets.only(bottom: 20,),
|
||||
// child: Row(
|
||||
// mainAxisAlignment: MainAxisAlignment.center,
|
||||
// children: [
|
||||
// CircleAvatar(
|
||||
// backgroundColor: Colors.grey.shade800,
|
||||
// ),
|
||||
// ],
|
||||
// ),
|
||||
// ),
|
||||
// ListView(
|
||||
// scrollDirection: Axis.vertical,
|
||||
// children: [
|
||||
// Column(
|
||||
// children: [
|
||||
// // 20.height,
|
||||
// ],
|
||||
// )
|
||||
// ],
|
||||
// ),
|
||||
// ]
|
||||
// ),
|
||||
// ),
|
||||
);
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue