Merge branch 'Fatima' into 'master'

Fatima

See merge request mirza.shafique/mohem_flutter_app!43
faiz_marathon_signalR_critical
Sikander Saleem 2 years ago
commit f905e67c4c

@ -41,7 +41,7 @@
"confirmPassword": "تأكيد كلمة المرور",
"update": "تحديث",
"title": "عنوان",
"home": "مسكن",
"home": "الرئيسية",
"mySalary": "راتبي",
"createRequest": "إنشاء طلب",
"forgotPassword": "هل نسيت كلمة السر",
@ -263,6 +263,49 @@
"totalPayAmount": "المبلغ الإجمالي للدفع",
"paymentInformation": "معلومات الدفع",
"amount": "مقدار",
"correctCurrentDatails": "تعديل او اكمال التفاصيل الحالية",
"selectType": " حدد نوع التغيير الذي تريد القيام به",
"enterNewInfo": " أدخل معلومات جديدة بسبب تغيير حقيقي في التفاصيل الحالية (على سبيل المثال بسبب تغيير في الحالة الاجتماعية",
"endDate": "تاريخ الانتهاء",
"removeThisMember": "هل انت متأكد تريد ازالة هذا العضو؟",
"updateThisMember ": "هل انت متأكد تريد تحديث بيانات هذا العضو؟",
"addNewFamilyMember": "اضافة عضو جديد",
"addRow": "اضافة صف جديد",
"pleaseSelect": "الرجاء اختيار",
"delete" : "حذف",
"edit" : "تعديل",
"add" : "اضافه",
"myProfile": "معلوماتي",
"mowadhafhi": "موظفي",
"searchAnnouncements": "بحث الاعلانات",
"announcements": "اعلانات",
"swipeRequest": "طلب تسجيل حضور",
"serviceType":"نوع الخدمه",
"departmentName":"اسم القسم",
"selectDepartment": "اختر القسم",
"relatedSection":"قسم ذو صله",
"selectSection": "اختيار القسم",
"relatedTopic": "عنوان ذو صله",
"selectTopic": "اختر العنوان",
"supportingDocument":"ارفاق مستند",
"mowadhafhiRequest": "طلب موظفي",
"ticketReference":"مرجع التذكره",
"section": "القسم",
"topic": "العنوان",
"actionBy":"الرد بواسطة",
"pending" : "معلق",
"pendingTransactions": "المعاملات المعلقه",
"selectRequestType":"الرجاء اختيار نوع الطلب",
"dateFrom":"من تاريخ",
"dateTo":"الى تاريخ",
"requestName":"اسم الطلب",
"createdFor":"انشاء لأجل",
"requestCreatedSuccessfully": "تم انشاء الطلب بنجاح",
"search": "بحث",
"wantToReject": "هل انت متأكد تريد الرفض",
"requestType":"نوع الطلب",
"employeeDigitalID":"هويةالموظف الرقمية",
"businessCard": "بطاقة العمل",
"profile": {
"reset_password": {
"label": "Reset Password",

@ -264,6 +264,48 @@
"totalPayAmount": "Total Pay Amount",
"paymentInformation": "Payment Information",
"amount": "Amount",
"correctCurrentDatails": "correct or complete the current details",
"selectType": "Select the type of change you want to make",
"enterNewInfo": "Enter new Information because of a real change to the current details (e.g because of a change in marital status)",
"endDate": "*End Date",
"removeThisMember": "Are You Sure You Want to Remove this Member?",
"updateThisMember": "Are You Sure You Want to Update this Member?",
"addNewFamilyMember": "Add New Family Member",
"addRow": "Add new row",
"pleaseSelect": "Please Select *",
"delete" : "delete",
"add" : "Add",
"edit" : "Edit",
"myProfile": "My Profile",
"mowadhafhi": "Mowadhafhi",
"searchAnnouncements": "Search Announcements",
"announcements": "Announcements",
"swipeRequest": "Swipe Request",
"serviceType":"Service Type",
"departmentName":"Department Name",
"selectDepartment": "Select Department",
"relatedSection":"Related Section",
"selectSection": "Select Section",
"relatedTopic": "Related Topic",
"selectTopic": "Select Topic",
"supportingDocument":"Supporting Document",
"mowadhafhiRequest": "Mowadhafhi Request",
"ticketReference":"Ticket Reference",
"section": "Section",
"topic": "Topic",
"actionBy":"Action By",
"pendingTransactions": "Pending Transactions",
"selectRequestType":"Please select request type",
"dateFrom":"Date From",
"dateTo":"Date To",
"requestName":"Request Name",
"createdFor":"Created For",
"requestType":"Request Type",
"requestCreatedSuccessfully": "Request created successfully",
"search": "Search",
"wantToReject": "Are you sure want to reject?",
"employeeDigitalID":"Employee Digital ID",
"businessCard": "Business Card",
"profile": {
"reset_password": {
"label": "Reset Password",

@ -3,12 +3,20 @@ import 'dart:async';
import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/consts.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart';
import 'package:mohem_flutter_app/models/get_approves_list_model.dart';
import 'package:mohem_flutter_app/models/get_contact_dff_structure_list.dart';
import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart';
import 'package:mohem_flutter_app/models/get_employee_address_model.dart';
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart';
import 'package:mohem_flutter_app/models/get_employee_phones_model.dart';
import 'package:mohem_flutter_app/models/profile/basic_details_dff_structure.dart';
import 'package:mohem_flutter_app/models/profile/get_contact_clos_structure_list.dart';
import 'package:mohem_flutter_app/models/profile/get_contact_details_list.dart';
import 'package:mohem_flutter_app/models/profile/phone_number_types_modek.dart';
import 'package:mohem_flutter_app/models/profile/submit_contact_transaction_list_model.dart';
import 'package:mohem_flutter_app/models/profile/submit_phone_transactions.dart';
import 'package:mohem_flutter_app/models/start_eit_approval_process_model.dart';
import 'package:mohem_flutter_app/api/api_client.dart';
class ProfileApiClient {
@ -130,4 +138,160 @@ class ProfileApiClient {
return responseData.getObjectValuesList ?? [];
}, url, postParams);
}
Future<SubmitContactTransactionList?> submetConatctTransaction(String pFunctionName,String actionType, int contactRelationId, String date,) async {
String url = "${ApiConsts.erpRest}SUBMIT_CONTACT_TRANSACTION";
Map<String, dynamic> postParams = {
"P_MENU_TYPE":"E",
"P_SELECTED_RESP_ID":-999,
"P_FUNCTION_NAME":pFunctionName,
"EITTransactionTBL":
[{
"TRANSACTION_NUMBER":1,
"NAME":"DATE_END",
"VARCHAR2_VALUE":null,
"NUMBER_VALUE":null,
"DATE_VALUE":date,
}],
"P_CONTACT_RELATIONSHIP_ID":contactRelationId,
"P_ACTION":actionType,
"PayrollCodeStr":"CS",
"LegislationCodeStr":"SA",
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.submitContactTransactionList;
}, url, postParams);
}
Future<GetApprovesList?> getApproves(String action, String comments,int transactionId, String itemKey) async {
String url = "${ApiConsts.erpRest}GET_APPROVERS_LIST";
Map<String, dynamic> postParams = {
"P_AME_TRANSACTION_TYPE": "SSHRMS",
"P_PAGE_LIMIT": 1000,
"P_PAGE_NUM": 1,
"P_TRANSACTION_ID": transactionId,
"P_ACTION_MODE": action,
"P_COMMENTS": comments,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
// return responseData.getApprovesList;
return (responseData.getApprovesList?.length ?? 0) > 0 ? responseData.getApprovesList!.first : null;
}, url, postParams);
}
Future<SubmitPhonesTransactionList> submitPhoneNumbers(List<GetEmployeePhonesList> empList) async {
String url = "${ApiConsts.erpRest}SUBMIT_PHONES_TRANSACTION";
Map<String, dynamic> postParams = {
"P_MENU_TYPE": "E",
"P_SELECTED_RESP_ID": -999,
"P_FUNCTION_NAME": "HR_PERINFO_SS",
"P_MBL_PHONES_TBL": empList.map((element) {
return element.toJson();
}).toList()
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return SubmitPhonesTransactionList.fromJson(responseData.submitPhonesTransactionList ?? {});
}, url, postParams);
}
Future<StartEitApprovalProcess?> startPhoneApprovalProcess(String action, String comments, String itemKey, int transactionId) async {
String url = "${ApiConsts.erpRest}START_PHONES_APPROVAL_PROCESS";
Map<String, dynamic> postParams = {
"P_SELECTED_RESP_ID": -999,
"P_MENU_TYPE": "E",
"P_ACTION_MODE": action,
"P_COMMENTS": comments,
"P_ITEM_KEY": itemKey,
"P_TRANSACTION_ID": transactionId,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.startEitApprovalProcess;
}, url, postParams);
}
// add & update family member
Future<List<GetBasicDetDffStructureList>> getBasicDetDffStructure() async {
String url = "${ApiConsts.erpRest}GET_BASIC_DET_DFF_STRUCTURE";
Map<String, dynamic> postParams = {
"P_FUNCTION_NAME": "HR_PERINFO_SS",
"P_MENU_TYPE": "E",
"P_REQUEST_TYPE": "CONTACT",
"P_SELECTED_RESP_ID": -999};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getBasicDetDffStructureList ?? [];
}, url, postParams);
}
// add & update family member
Future<List<GetContactColsStructureList>> getContactColsStructureList(String actionType) async {
String url = "${ApiConsts.erpRest}GET_CONTACT_COLS_STRUCTURE";
Map<String, dynamic> postParams = {
"P_ACTION":actionType,
"P_FUNCTION_NAME": "HR_PERINFO_SS",
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getContactColsStructureList ?? [];
}, url, postParams);
}
// update family member
Future<List<GetContactDetailsList>> getContactDetailsList(int contactRelationId) async {
String url = "${ApiConsts.erpRest}GET_CONTACT_DETAILS";
Map<String, dynamic> postParams = {
"P_MENU_TYPE": "E",
"P_SELECTED_RESP_ID": -999,
"P_CONTACT_RELATIONSHIP_ID":contactRelationId,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getContactDetailsList ?? [];
}, url, postParams);
}
// add & update family member
Future<List<GetContactDffStructureList>> getContactDffStructureList() async {
String url = "${ApiConsts.erpRest}GET_CONTACT_DFF_STRUCTURE";
Map<String, dynamic> postParams = {
"P_DESC_FLEX_CONTEXT_CODE": "HMG_ADD_CONTACT_DETAILS",
"P_FUNCTION_NAME": "HR_PERINFO_SS",
"P_MENU_TYPE": "E",
"P_SELECTED_RESP_ID": -999,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.getContactDffStructureList ?? [];
}, url, postParams);
}
Future<SubmitContactTransactionList?> submetConatctTransactionAddAndUpdate(String actionType, int relationId ,List<Map<String, dynamic>> list) async {
String url = "${ApiConsts.erpRest}SUBMIT_CONTACT_TRANSACTION";
Map<String, dynamic> postParams = {
"P_MENU_TYPE": "E",
"P_SELECTED_RESP_ID": -999,
"P_FUNCTION_NAME":"HR_PERINFO_SS",
"P_ACTION": actionType,
"P_CONTACT_RELATIONSHIP_ID": relationId,
};
postParams["EITTransactionTBL"] =list;
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.submitContactTransactionList;
}, url, postParams);
}
}

@ -15,13 +15,13 @@ import 'package:mohem_flutter_app/ui/my_attendance/my_attendance_screen.dart';
import 'package:mohem_flutter_app/ui/payslip/monthly_pay_slip_screen.dart';
import 'package:mohem_flutter_app/ui/profile/basic_details.dart';
import 'package:mohem_flutter_app/ui/profile/contact_details.dart';
import 'package:mohem_flutter_app/ui/profile/delete_familyMember.dart';
import 'package:mohem_flutter_app/ui/profile/delete_family_member.dart';
import 'package:mohem_flutter_app/ui/profile/dynamic_screens/dynamic_input_profile_screen.dart';
import 'package:mohem_flutter_app/ui/profile/family_members.dart';
import 'package:mohem_flutter_app/ui/profile/personal_info.dart';
import 'package:mohem_flutter_app/ui/screens/announcements/announcement_details.dart';
import 'package:mohem_flutter_app/ui/screens/announcements/announcements.dart';
import 'package:mohem_flutter_app/ui/profile/add_update_family_member.dart';
// import 'package:mohem_flutter_app/ui/my_attendance/work_from_home_screen.dart';
import 'package:mohem_flutter_app/ui/screens/eit/add_eit.dart';
import 'package:mohem_flutter_app/ui/screens/mowadhafhi/mowadhafhi_home.dart';
@ -81,6 +81,7 @@ class AppRoutes {
static const String contactDetails = "/contactDetails";
static const String familyMembers = "/familyMembers";
static const String deleteFamilyMember = "/deleteFamilyMember";
static const String addUpdateFamilyMember = "/addUpdateFamilyMember";
// Mowadhafhi
static const String mowadhafhi = "/mowadhafhi";
@ -138,8 +139,9 @@ class AppRoutes {
dynamicScreen: (context) => DynamicListViewScreen(),
addDynamicInput: (context) => DynamicInputScreen(),
addDynamicInputProfile: (context) => DynamicInputScreenProfile(),
deleteFamilyMember: (context) => DeleteFamilyMember(),
deleteFamilyMember: (context) => DeleteFamilyMember(ModalRoute.of(context)!.settings.arguments as int),
requestSubmitScreen: (context) => RequestSubmitScreen(),
addUpdateFamilyMember: (context) => AddUpdateFamilyMember(),
//mowadhafhi
mowadhafhi: (context) => MowadhafhiHome(),

@ -57,7 +57,7 @@ class CodegenLoader extends AssetLoader{
"confirmPassword": "تأكيد كلمة المرور",
"update": "تحديث",
"title": "عنوان",
"home": "مسكن",
"home": "الرئيسية",
"mySalary": "راتبي",
"createRequest": "إنشاء طلب",
"forgotPassword": "هل نسيت كلمة السر",
@ -279,6 +279,49 @@ class CodegenLoader extends AssetLoader{
"totalPayAmount": "المبلغ الإجمالي للدفع",
"paymentInformation": "معلومات الدفع",
"amount": "مقدار",
"correctCurrentDatails": "تعديل او اكمال التفاصيل الحالية",
"selectType": " حدد نوع التغيير الذي تريد القيام به",
"enterNewInfo": " أدخل معلومات جديدة بسبب تغيير حقيقي في التفاصيل الحالية (على سبيل المثال بسبب تغيير في الحالة الاجتماعية",
"endDate": "تاريخ الانتهاء",
"removeThisMember": "هل انت متأكد تريد ازالة هذا العضو؟",
"updateThisMember ": "هل انت متأكد تريد تحديث بيانات هذا العضو؟",
"addNewFamilyMember": "اضافة عضو جديد",
"addRow": "اضافة صف جديد",
"pleaseSelect": "الرجاء اختيار",
"delete": "حذف",
"edit": "تعديل",
"add": "اضافه",
"myProfile": "معلوماتي",
"mowadhafhi": "موظفي",
"searchAnnouncements": "بحث الاعلانات",
"announcements": "اعلانات",
"swipeRequest": "طلب تسجيل حضور",
"serviceType": "نوع الخدمه",
"departmentName": "اسم القسم",
"selectDepartment": "اختر القسم",
"relatedSection": "قسم ذو صله",
"selectSection": "اختيار القسم",
"relatedTopic": "عنوان ذو صله",
"selectTopic": "اختر العنوان",
"supportingDocument": "ارفاق مستند",
"mowadhafhiRequest": "طلب موظفي",
"ticketReference": "مرجع التذكره",
"section": "القسم",
"topic": "العنوان",
"actionBy": "الرد بواسطة",
"pending": "معلق",
"pendingTransactions": "المعاملات المعلقه",
"selectRequestType": "الرجاء اختيار نوع الطلب",
"dateFrom": "من تاريخ",
"dateTo": "الى تاريخ",
"requestName": "اسم الطلب",
"createdFor": "انشاء لأجل",
"requestCreatedSuccessfully": "تم انشاء الطلب بنجاح",
"search": "بحث",
"wantToReject": "هل انت متأكد تريد الرفض",
"requestType": "نوع الطلب",
"employeeDigitalID": "هويةالموظف الرقمية",
"businessCard": "بطاقة العمل",
"profile": {
"reset_password": {
"label": "Reset Password",
@ -576,6 +619,48 @@ static const Map<String,dynamic> en_US = {
"totalPayAmount": "Total Pay Amount",
"paymentInformation": "Payment Information",
"amount": "Amount",
"correctCurrentDatails": "correct or complete the current details",
"selectType": "Select the type of change you want to make",
"enterNewInfo": "Enter new Information because of a real change to the current details (e.g because of a change in marital status)",
"endDate": "*End Date",
"removeThisMember": "Are You Sure You Want to Remove this Member?",
"updateThisMember": "Are You Sure You Want to Update this Member?",
"addNewFamilyMember": "Add New Family Member",
"addRow": "Add new row",
"pleaseSelect": "Please Select *",
"delete": "delete",
"add": "Add",
"edit": "Edit",
"myProfile": "My Profile",
"mowadhafhi": "Mowadhafhi",
"searchAnnouncements": "Search Announcements",
"announcements": "Announcements",
"swipeRequest": "Swipe Request",
"serviceType": "Service Type",
"departmentName": "Department Name",
"selectDepartment": "Select Department",
"relatedSection": "Related Section",
"selectSection": "Select Section",
"relatedTopic": "Related Topic",
"selectTopic": "Select Topic",
"supportingDocument": "Supporting Document",
"mowadhafhiRequest": "Mowadhafhi Request",
"ticketReference": "Ticket Reference",
"section": "Section",
"topic": "Topic",
"actionBy": "Action By",
"pendingTransactions": "Pending Transactions",
"selectRequestType": "Please select request type",
"dateFrom": "Date From",
"dateTo": "Date To",
"requestName": "Request Name",
"createdFor": "Created For",
"requestType": "Request Type",
"requestCreatedSuccessfully": "Request created successfully",
"search": "Search",
"wantToReject": "Are you sure want to reject?",
"employeeDigitalID": "Employee Digital ID",
"businessCard": "Business Card",
"profile": {
"reset_password": {
"label": "Reset Password",

@ -264,6 +264,49 @@ abstract class LocaleKeys {
static const totalPayAmount = 'totalPayAmount';
static const paymentInformation = 'paymentInformation';
static const amount = 'amount';
static const correctCurrentDatails = 'correctCurrentDatails';
static const selectType = 'selectType';
static const enterNewInfo = 'enterNewInfo';
static const endDate = 'endDate';
static const removeThisMember = 'removeThisMember';
static const updateThisMember = 'updateThisMember ';
static const addNewFamilyMember = 'addNewFamilyMember';
static const addRow = 'addRow';
static const pleaseSelect = 'pleaseSelect';
static const delete = 'delete';
static const edit = 'edit';
static const add = 'add';
static const myProfile = 'myProfile';
static const mowadhafhi = 'mowadhafhi';
static const searchAnnouncements = 'searchAnnouncements';
static const announcements = 'announcements';
static const swipeRequest = 'swipeRequest';
static const serviceType = 'serviceType';
static const departmentName = 'departmentName';
static const selectDepartment = 'selectDepartment';
static const relatedSection = 'relatedSection';
static const selectSection = 'selectSection';
static const relatedTopic = 'relatedTopic';
static const selectTopic = 'selectTopic';
static const supportingDocument = 'supportingDocument';
static const mowadhafhiRequest = 'mowadhafhiRequest';
static const ticketReference = 'ticketReference';
static const section = 'section';
static const topic = 'topic';
static const actionBy = 'actionBy';
static const pending = 'pending';
static const pendingTransactions = 'pendingTransactions';
static const selectRequestType = 'selectRequestType';
static const dateFrom = 'dateFrom';
static const dateTo = 'dateTo';
static const requestName = 'requestName';
static const createdFor = 'createdFor';
static const requestCreatedSuccessfully = 'requestCreatedSuccessfully';
static const search = 'search';
static const wantToReject = 'wantToReject';
static const requestType = 'requestType';
static const employeeDigitalID = 'employeeDigitalID';
static const businessCard = 'businessCard';
static const profile_reset_password_label = 'profile.reset_password.label';
static const profile_reset_password_username = 'profile.reset_password.username';
static const profile_reset_password_password = 'profile.reset_password.password';

@ -11,6 +11,7 @@ import 'package:mohem_flutter_app/models/get_absence_collection_notification_bod
import 'package:mohem_flutter_app/models/get_action_history_list_model.dart';
import 'package:mohem_flutter_app/models/get_approves_list_model.dart';
import 'package:mohem_flutter_app/models/get_attachement_list_model.dart';
import 'package:mohem_flutter_app/models/get_contact_dff_structure_list.dart';
import 'package:mohem_flutter_app/models/get_day_hours_type_details_list_model.dart';
import 'package:mohem_flutter_app/models/get_default_value_list_model.dart';
import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart';
@ -53,6 +54,9 @@ import 'package:mohem_flutter_app/models/pending_transactions/get_req_functions.
import 'package:mohem_flutter_app/models/privilege_list_model.dart';
import 'package:mohem_flutter_app/models/profile/basic_details_cols_structions.dart';
import 'package:mohem_flutter_app/models/profile/basic_details_dff_structure.dart';
import 'package:mohem_flutter_app/models/profile/get_contact_clos_structure_list.dart';
import 'package:mohem_flutter_app/models/profile/get_contact_details_list.dart';
import 'package:mohem_flutter_app/models/profile/submit_phone_transactions.dart';
import 'package:mohem_flutter_app/models/profile/phone_number_types_modek.dart';
import 'package:mohem_flutter_app/models/start_eit_approval_process_model.dart';
import 'package:mohem_flutter_app/models/submit_eit_transaction_list_model.dart';
@ -65,6 +69,7 @@ import 'package:mohem_flutter_app/models/worklist/hr/get_contact_notification_bo
import 'package:mohem_flutter_app/models/worklist/hr/get_phones_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/worklist/replacement_list_model.dart';
import 'package:mohem_flutter_app/models/worklist_response_model.dart';
import 'package:mohem_flutter_app/models/profile/submit_contact_transaction_list_model.dart';
class GenericResponseModel {
String? date;
@ -137,9 +142,9 @@ class GenericResponseModel {
List<String>? getCcpTransactionsList;
List<String>? getCcpTransactionsListNew;
List<String>? getConcurrentProgramsList;
List<String>? getContactColsStructureList;
List<String>? getContactDetailsList;
List<String>? getContactDffStructureList;
List<GetContactColsStructureList>? getContactColsStructureList;
List<GetContactDetailsList>? getContactDetailsList;
List<GetContactDffStructureList>? getContactDffStructureList;
GetContactNotificationBodyList? getContactNotificationBodyList;
List<String>? getCountriesList;
List<GetDayHoursTypeDetailsList>? getDayHoursTypeDetailsList;
@ -298,10 +303,10 @@ class GenericResponseModel {
String? submitBasicDetTransactionList;
String? submitCEITransactionList;
String? submitCcpTransactionList;
String? submitContactTransactionList;
SubmitContactTransactionList? submitContactTransactionList;
SubmitEITTransactionList? submitEITTransactionList;
String? submitHrTransactionList;
String? submitPhonesTransactionList;
Map<String, dynamic>? submitPhonesTransactionList;
String? submitSITTransactionList;
String? submitTermTransactionList;
List<SubordinatesLeavesList>? subordinatesOnLeavesList;
@ -697,6 +702,13 @@ class GenericResponseModel {
getBasicDetDffStructureList!.add(new GetBasicDetDffStructureList.fromJson(v));
});
}
if (json['GetContactDffStructureList'] != null) {
getContactDffStructureList = <GetContactDffStructureList>[];
json['GetContactDffStructureList'].forEach((v) {
getContactDffStructureList!.add(new GetContactDffStructureList.fromJson(v));
});
}
if (json['GetBasicDetNtfBodyList'] != null) {
getBasicDetNtfBodyList = <GetBasicDetNtfBodyList>[];
json['GetBasicDetNtfBodyList'].forEach((v) {
@ -712,9 +724,19 @@ class GenericResponseModel {
getCcpTransactionsList = json['GetCcpTransactionsList'];
getCcpTransactionsListNew = json['GetCcpTransactionsList_New'];
getConcurrentProgramsList = json['GetConcurrentProgramsList'];
getContactColsStructureList = json['GetContactColsStructureList'];
getContactDetailsList = json['GetContactDetailsList'];
getContactDffStructureList = json['GetContactDffStructureList'];
if (json['GetContactDetailsList'] != null) {
getContactDetailsList = <GetContactDetailsList>[];
json['GetContactDetailsList'].forEach((v) {
getContactDetailsList!.add(new GetContactDetailsList.fromJson(v));
});
}
if (json['GetContactColsStructureList'] != null) {
getContactColsStructureList = <GetContactColsStructureList>[];
json['GetContactColsStructureList'].forEach((v) {
getContactColsStructureList!
.add(new GetContactColsStructureList.fromJson(v));
});
}
getContactNotificationBodyList = json["GetContactNotificationBodyList"] == null ? null : GetContactNotificationBodyList.fromJson(json["GetContactNotificationBodyList"]);
getCountriesList = json['GetCountriesList'];
if (json['GetDayHoursTypeDetailsList'] != null) {
@ -1110,11 +1132,15 @@ class GenericResponseModel {
submitBasicDetTransactionList = json['SubmitBasicDetTransactionList'];
submitCEITransactionList = json['SubmitCEITransactionList'];
submitCcpTransactionList = json['SubmitCcpTransactionList'];
submitContactTransactionList = json['SubmitContactTransactionList'];
submitContactTransactionList = json['SubmitContactTransactionList'] != null
? new SubmitContactTransactionList.fromJson(
json['SubmitContactTransactionList'])
: null;
submitEITTransactionList = json['SubmitEITTransactionList'] != null ? new SubmitEITTransactionList.fromJson(json['SubmitEITTransactionList']) : null;
submitHrTransactionList = json['SubmitHrTransactionList'];
submitPhonesTransactionList = json['SubmitPhonesTransactionList'];
submitSITTransactionList = json['SubmitSITTransactionList'];
submitTermTransactionList = json['SubmitTermTransactionList'];
@ -1252,9 +1278,18 @@ class GenericResponseModel {
data['GetCcpTransactionsList'] = this.getCcpTransactionsList;
data['GetCcpTransactionsList_New'] = this.getCcpTransactionsListNew;
data['GetConcurrentProgramsList'] = this.getConcurrentProgramsList;
data['GetContactColsStructureList'] = this.getContactColsStructureList;
data['GetContactDetailsList'] = this.getContactDetailsList;
data['GetContactDffStructureList'] = this.getContactDffStructureList;
if (this.getContactDetailsList != null) {
data['GetContactDetailsList'] =
this.getContactDetailsList!.map((v) => v.toJson()).toList();
}
if (this.getContactColsStructureList != null) {
data['GetContactColsStructureList'] =
this.getContactColsStructureList!.map((v) => v.toJson()).toList();
}
if (this.getContactDffStructureList != null) {
data['GetContactDffStructureList'] =
this.getContactDffStructureList!.map((v) => v.toJson()).toList();
}
data['GetContactNotificationBodyList'] = this.getContactNotificationBodyList;
data['GetCountriesList'] = this.getCountriesList;
if (this.getDayHoursTypeDetailsList != null) {

@ -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,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;
}
}

@ -1,11 +1,12 @@
import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart';
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
import 'package:mohem_flutter_app/models/profile/get_contact_details_list.dart';
class GetBasicDetDffStructureList {
String? aLPHANUMERICALLOWEDFLAG;
String? aPPLICATIONCOLUMNNAME;
String? cHILDSEGMENTSVS;
Null? cHILDSEGMENTSVSSplited;
dynamic? cHILDSEGMENTSVSSplited;
String? dEFAULTTYPE;
String? dEFAULTVALUE;
String? dESCFLEXCONTEXTCODE;
@ -27,9 +28,9 @@ class GetBasicDetDffStructureList {
String? nUMBERPRECISION;
String? nUMERICMODEENABLEDFLAG;
String? pARENTSEGMENTSDV;
List<Null>? pARENTSEGMENTSDVSplited;
List<dynamic>? pARENTSEGMENTSDVSplited;
String? pARENTSEGMENTSVS;
List<Null>? pARENTSEGMENTSVSSplitedVS;
List<dynamic>? pARENTSEGMENTSVSSplitedVS;
String? rEADONLY;
String? rEQUIREDFLAG;
String? sEGMENTNAME;
@ -40,6 +41,7 @@ class GetBasicDetDffStructureList {
String? vALIDATIONTYPE;
String? vALIDATIONTYPEDSP;
GetEmployeeBasicDetailsList? userBasicDetail;
GetContactDetailsList? getContactDetailsList;
GetBasicDetDffStructureList(
{this.aLPHANUMERICALLOWEDFLAG,
@ -79,7 +81,9 @@ class GetBasicDetDffStructureList {
this.uSEDFLAG,
this.vALIDATIONTYPE,
this.vALIDATIONTYPEDSP,
this.userBasicDetail});
this.userBasicDetail,
this.getContactDetailsList
});
GetBasicDetDffStructureList.fromJson(Map<String, dynamic> json) {
aLPHANUMERICALLOWEDFLAG = json['ALPHANUMERIC_ALLOWED_FLAG'];
@ -134,6 +138,7 @@ class GetBasicDetDffStructureList {
uSEDFLAG = json['USED_FLAG'];
vALIDATIONTYPE = json['VALIDATION_TYPE'];
vALIDATIONTYPEDSP = json['VALIDATION_TYPE_DSP'];
}
Map<String, dynamic> toJson() {

@ -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,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;
}
}

@ -186,7 +186,7 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
),
Container(
margin: const EdgeInsets.only(left: 5, right: 5),
child: "${LocaleKeys.present.tr()} ${getTimeCardSummaryList!.aTTENDEDDAYS}".toText16(isBold: true, color: MyColors.lightGreenColor),
child: "${LocaleKeys.present.tr()} ${getTimeCardSummaryList?.aTTENDEDDAYS}".toText16(isBold: true, color: MyColors.lightGreenColor),
),
],
).paddingOnly(left: 21, right: 23),
@ -203,7 +203,7 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
),
Container(
margin: const EdgeInsets.only(left: 5, right: 5),
child: "${LocaleKeys.absent.tr()} ${getTimeCardSummaryList!.aBSENTDAYS}".toText16(
child: "${LocaleKeys.absent.tr()} ${getTimeCardSummaryList?.aBSENTDAYS}".toText16(
isBold: true,
color: MyColors.backgroundBlackColor,
),
@ -286,6 +286,7 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
showDatePickerButton: false,
controller: _calendarController,
headerHeight: 0,
viewNavigationMode: ViewNavigationMode.none,
todayHighlightColor: MyColors.grey3AColor,
showNavigationArrow: false,
showCurrentTimeIndicator: false,
@ -302,7 +303,7 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
dayFormat: 'EEE',
showTrailingAndLeadingDates: false,
showAgenda: false,
navigationDirection: MonthNavigationDirection.horizontal,
//navigationDirection: MonthNavigationDirection.vertical,
monthCellStyle: MonthCellStyle(
textStyle: TextStyle(
fontStyle: FontStyle.normal,
@ -318,7 +319,7 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
if (details.date.month == formattedDate.month && details.date.year == formattedDate.year) {
int val = details.date.day;
//check day is off
if (getDayHoursTypeDetailsList[val - 1].aTTENDEDFLAG == 'N' && getDayHoursTypeDetailsList[val - 1].dAYTYPE == 'OFF') {
if (getDayHoursTypeDetailsList?[val - 1].aTTENDEDFLAG == 'N' && getDayHoursTypeDetailsList?[val - 1].dAYTYPE == 'OFF') {
return Container(
margin: const EdgeInsets.all(4),
decoration: BoxDecoration(
@ -337,7 +338,7 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
);
}
//check day is Present
else if (getDayHoursTypeDetailsList[val - 1].aTTENDEDFLAG == 'Y') {
else if (getDayHoursTypeDetailsList?[val - 1].aTTENDEDFLAG == 'Y') {
return Container(
margin: const EdgeInsets.all(4),
decoration: BoxDecoration(
@ -368,7 +369,7 @@ class _MonthlyAttendanceState extends State<MonthlyAttendance> {
);
}
//check day is Absent
else if (getDayHoursTypeDetailsList[val - 1].aTTENDEDFLAG == 'N' && getDayHoursTypeDetailsList[val - 1].aBSENTFLAG == 'Y') {
else if (getDayHoursTypeDetailsList?[val - 1].aTTENDEDFLAG == 'N' && getDayHoursTypeDetailsList?[val - 1].aBSENTFLAG == 'Y') {
return Container(
margin: const EdgeInsets.all(4),
decoration: BoxDecoration(

@ -335,7 +335,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
height: 20,
),
),
label: 'Home',
label: LocaleKeys.home.tr(),
),
BottomNavigationBarItem(
icon: Padding(
@ -346,7 +346,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
height: 20,
),
),
label: 'Create Request',
label: LocaleKeys.createRequest.tr(),
),
BottomNavigationBarItem(
icon: Padding(
@ -357,7 +357,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
height: 20,
),
),
label: 'Work List',
label: LocaleKeys.workList.tr(),
),
BottomNavigationBarItem(
icon: Padding(
@ -368,7 +368,7 @@ class _DashboardScreenState extends State<DashboardScreen> {
height: 20,
),
),
label: 'Items for Sale',
label: LocaleKeys.itemsForSale.tr(),
),
],
currentIndex: 0,

@ -6,6 +6,8 @@ import 'package:mohem_flutter_app/ui/landing/widget/drawer_item.dart';
import 'package:mohem_flutter_app/widgets/dialogs/dialogs.dart';
import 'package:mohem_flutter_app/ui/dialogs/id/business_card_dialog.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
class AppDrawer extends StatefulWidget {
@override
@ -30,8 +32,9 @@ class _AppDrawerState extends State<AppDrawer> {
children: [
const Divider(),
InkWell(
child: const DrawerItem(
'My Profile',
child: new DrawerItem(
//'My Profile',
LocaleKeys.myProfile.tr(),
icon: Icons.person,
color: Colors.grey,
),
@ -40,8 +43,9 @@ class _AppDrawerState extends State<AppDrawer> {
}),
const Divider(),
InkWell(
child: const DrawerItem(
'Mowadhafhi',
child: DrawerItem(
// 'Mowadhafhi',
LocaleKeys.mowadhafhi.tr(),
icon: Icons.person,
color: Colors.grey,
),
@ -51,8 +55,8 @@ class _AppDrawerState extends State<AppDrawer> {
),
const Divider(),
InkWell(
child: const DrawerItem(
'Pending Transactions',
child: DrawerItem(
LocaleKeys.pendingTransactions.tr(),
icon: Icons.person,
color: Colors.grey,
),
@ -62,7 +66,7 @@ class _AppDrawerState extends State<AppDrawer> {
),
InkWell(
child: DrawerItem(
'Employee Digital ID',
LocaleKeys.employeeDigitalID.tr(),
icon: Icons.insert_drive_file_outlined,
color: Colors.grey,
),
@ -73,7 +77,7 @@ class _AppDrawerState extends State<AppDrawer> {
Divider(),
InkWell(
child: DrawerItem(
'Business Card',
LocaleKeys.businessCard.tr(),
icon: Icons.insert_drive_file_outlined,
color: Colors.grey,
),

@ -5,6 +5,7 @@ import 'package:easy_localization/easy_localization.dart';
import 'package:file_picker/file_picker.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/colors.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/config/routes.dart';
@ -25,8 +26,8 @@ class RequestSubmitScreenParams {
String title;
int transactionId;
String pItemId;
RequestSubmitScreenParams(this.title, this.transactionId, this.pItemId);
String approvalFlag;
RequestSubmitScreenParams(this.title, this.transactionId, this.pItemId, this.approvalFlag);
}
class RequestSubmitScreen extends StatefulWidget {
@ -83,12 +84,30 @@ class _RequestSubmitScreenState extends State<RequestSubmitScreen> {
});
}
await MyAttendanceApiClient().addAttachment(list);
await MyAttendanceApiClient().startEitApprovalProcess(
"SUBMIT",
comments.text,
params!.pItemId,
params!.transactionId,
);
if (params!.approvalFlag == 'phone_numbers') {
await ProfileApiClient().startPhoneApprovalProcess(
LocaleKeys.submit.tr(),
comments.text,
params!.pItemId,
params!.transactionId,
);
} else if(params!.approvalFlag == 'family_member') {
await ProfileApiClient().getApproves(
LocaleKeys.submit.tr(),
comments.text,
params!.transactionId!.toInt(),
params!.pItemId.toString(),
);
} else {
await MyAttendanceApiClient().startEitApprovalProcess(
LocaleKeys.submit.tr(),
comments.text,
params!.pItemId,
params!.transactionId,
);
}
Utils.hideLoading(context);
Utils.showToast(LocaleKeys.yourRequestHasBeenSubmittedForApprovals.tr(), longDuration: true);
Navigator.of(context).popUntil((route) {
@ -124,7 +143,7 @@ class _RequestSubmitScreenState extends State<RequestSubmitScreen> {
padding: const EdgeInsets.all(21).copyWith(top: 14),
physics: const BouncingScrollPhysics(),
children: [
attachmentView("Attachments"),
attachmentView(LocaleKeys.attachments.tr(),),
14.height,
InputWidget(
LocaleKeys.comments.tr(),
@ -214,7 +233,7 @@ class _RequestSubmitScreenState extends State<RequestSubmitScreen> {
children: [
title.toText16().expanded,
6.width,
SimpleButton("Add", () async {
SimpleButton(LocaleKeys.add.tr(), () async {
FilePickerResult? result = await FilePicker.platform.pickFiles(allowMultiple: true);
if (result != null) {
attachmentFiles = attachmentFiles + result.paths.map((path) => File(path!)).toList();

@ -81,8 +81,7 @@ class _DynamicInputScreenState extends State<DynamicInputScreen> {
genericResponseModel = await MyAttendanceApiClient().validateEitTransaction(dESCFLEXCONTEXTCODE, dynamicParams!.dynamicId, values);
SubmitEITTransactionList submitEITTransactionList = await MyAttendanceApiClient().submitEitTransaction(dESCFLEXCONTEXTCODE, dynamicParams!.dynamicId, values);
Utils.hideLoading(context);
Navigator.pushNamed(context, AppRoutes.requestSubmitScreen,
arguments: RequestSubmitScreenParams(descFlexConTextTitle, submitEITTransactionList.pTRANSACTIONID!, submitEITTransactionList.pITEMKEY!));
Navigator.pushNamed(context, AppRoutes.requestSubmitScreen, arguments: RequestSubmitScreenParams("title", submitEITTransactionList.pTRANSACTIONID!, submitEITTransactionList.pITEMKEY!, 'eit'));
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);

@ -33,13 +33,14 @@ class MyAttendanceScreen extends StatelessWidget {
? Utils.getNoDataWidget(context)
: Column(
children: [
// commenting this because missing wipe coming as duplicate in the screen
itemView(
"assets/images/pdf.svg",
LocaleKeys.missingSwipes.tr(),
LocaleKeys.myAttendance.tr(),
).onPress(() {
Navigator.pushNamed(context, AppRoutes.monthlyAttendance);
}),
12.height,
Navigator.pushNamed(context, AppRoutes.monthlyAttendance, arguments: DynamicListViewParams(LocaleKeys.missingSwipes.tr(), "HMG_OTL_MISSING_SWIPE_EIT_SS"));
}).paddingOnly(left: 21, right: 21),
12.height,
ListView.separated(
padding: const EdgeInsets.all(21),
itemBuilder: (cxt, index) => itemView(

@ -0,0 +1,475 @@
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);
}
}
}

@ -72,22 +72,6 @@ class _BasicDetailsState extends State<BasicDetails> {
context,
title: LocaleKeys.profile_basicDetails.tr(),
),
// appBar: AppBar(
// backgroundColor: MyColors.white,
// leading: Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// children: [
// IconButton(
// icon: const Icon(
// Icons.arrow_back_ios,
// color: MyColors.backgroundBlackColor,
// ),
// onPressed: () => Navigator.pop(context),
// ),
// "Basic Details".toText24(isBold: true, color: MyColors.blackColor),
// ],
// ),
// ),
backgroundColor: MyColors.backgroundColor,
bottomSheet: footer(),
body: Column(
@ -151,13 +135,13 @@ class _BasicDetailsState extends State<BasicDetails> {
void showAlertDialog(BuildContext context) {
dynamic changeOrNew = 1;
Widget cancelButton = TextButton(
child: Text("Cancel"),
child: Text(LocaleKeys.cancel.tr()),
onPressed: () {
Navigator.pop(context);
},
);
Widget continueButton = TextButton(
child: Text("Next"),
child: Text(LocaleKeys.next.tr()),
onPressed: () {
continueDynamicForms();
},
@ -165,7 +149,7 @@ class _BasicDetailsState extends State<BasicDetails> {
StatefulBuilder alert = StatefulBuilder(builder: (context, setState) {
return AlertDialog(
shape: RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(10.0))),
title: Text("Confirm"),
title: Text(LocaleKeys.confirm.tr()),
content: Builder(builder: (context) {
// Get available height and width of the build area of this widget. Make a choice depending on the size.
var height = MediaQuery.of(context).size.height * .5;
@ -173,14 +157,14 @@ class _BasicDetailsState extends State<BasicDetails> {
height: height,
child: Column(children: [
Text(
"Select the type of change you want to make.",
LocaleKeys.selectType.tr(),
style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
),
Divider(),
Column(
children: [
ListTile(
title: Text("correct or complete the current details"),
title: Text(LocaleKeys.correctCurrentDatails.tr()),
leading: Radio(
value: 1,
groupValue: changeOrNew,
@ -193,7 +177,7 @@ class _BasicDetailsState extends State<BasicDetails> {
),
),
ListTile(
title: Text("Enter new Information because of a real change to the current details (e.g because of a change in marital status)"),
title: Text(LocaleKeys.enterNewInfo.tr()),
leading: Radio(
value: 2,
groupValue: changeOrNew,

@ -81,7 +81,7 @@ class _ContactDetailsState extends State<ContactDetails> {
left: 26,
right: 26,
),
padding: EdgeInsets.only(left: 14, right: 14, top: 5, bottom: 20),
padding: EdgeInsets.all(15),
///height: 200,
decoration: BoxDecoration(
@ -96,7 +96,7 @@ class _ContactDetailsState extends State<ContactDetails> {
color: Colors.white,
borderRadius: BorderRadius.circular(10.0),
),
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
child: Stack(children: [
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
@ -119,17 +119,7 @@ class _ContactDetailsState extends State<ContactDetails> {
"${e.pHONENUMBER}".toText16(isBold: true, color: MyColors.blackColor),
]))
.toList())
])
// [
// "${getEmployeePhonesList[0].pHONETYPEMEANING}".toText13(color: MyColors.lightGrayColor),
// "${getEmployeePhonesList[0].pHONENUMBER}".toText16(isBold: true, color: MyColors.blackColor),
// SizedBox(
// height: 20,),
// "${getEmployeePhonesList[1].pHONETYPEMEANING}".toText13(color: MyColors.lightGrayColor),
// "${getEmployeePhonesList[1].pHONENUMBER}".toText16(isBold: true, color: MyColors.blackColor),
// ]
),
])),
Container(
width: double.infinity,
margin: EdgeInsets.only(
@ -137,8 +127,8 @@ class _ContactDetailsState extends State<ContactDetails> {
left: 26,
right: 26,
),
padding: EdgeInsets.only(left: 14, right: 14, top: 5, bottom: 20),
height: 400,
padding: EdgeInsets.all(15),
// height: 400,
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
@ -151,7 +141,7 @@ class _ContactDetailsState extends State<ContactDetails> {
color: Colors.white,
borderRadius: BorderRadius.circular(10.0),
),
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
child: Stack(children: [
Row(
mainAxisAlignment: MainAxisAlignment.end,
children: [
@ -176,36 +166,6 @@ class _ContactDetailsState extends State<ContactDetails> {
]))
.toList())
]))
// "${getEmployeeAddressList[0].sEGMENTPROMPT}".toText13(color: MyColors.lightGrayColor),
// "${getEmployeeAddressList[0].sEGMENTVALUEDSP}".toText16(isBold: true, color: MyColors.blackColor),
// SizedBox(
// height: 20,
// ),
// "${getEmployeeAddressList[2].sEGMENTPROMPT}".toText13(color: MyColors.lightGrayColor),
// "${getEmployeeAddressList[2].sEGMENTVALUEDSP}".toText16(isBold: true, color: MyColors.blackColor),
// SizedBox(
// height: 20,
// ),
// "${getEmployeeAddressList[3].sEGMENTPROMPT}".toText13(color: MyColors.lightGrayColor),
// "${getEmployeeAddressList[3].sEGMENTVALUEDSP}".toText16(isBold: true, color: MyColors.blackColor),
// SizedBox(
// height: 20,
// ),
// "${getEmployeeAddressList[4].sEGMENTPROMPT}".toText13(color: MyColors.lightGrayColor),
// "${getEmployeeAddressList[4].sEGMENTVALUEDSP}".toText16(isBold: true, color: MyColors.blackColor),
// SizedBox(
// height: 20,
// ),
// "${getEmployeeAddressList[5].sEGMENTPROMPT}".toText13(color: MyColors.lightGrayColor),
// "${getEmployeeAddressList[5].sEGMENTVALUEDSP}".toText16(isBold: true, color: MyColors.blackColor),
// SizedBox(
// height: 20,
// ),
// "${getEmployeeAddressList[6].sEGMENTPROMPT}".toText13(color: MyColors.lightGrayColor),
// "${getEmployeeAddressList[6].sEGMENTVALUEDSP}".toText16(isBold: true, color: MyColors.blackColor),
//]),
//),
//],
])));
}

@ -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;
}
}

@ -5,24 +5,9 @@ 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/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/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_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/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 DynamicFamilyMembersParams {
String title;

@ -6,17 +6,20 @@ 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_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/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';
@ -49,6 +52,7 @@ class _DynamicInputScreenState extends State<DynamicInputScreenProfile> {
List<GetBasicDetColsStructureList>? getBasicDetColsStructureList;
DynamicProfileParams? dynamicParams;
String dESCFLEXCONTEXTCODE = "";
@override
void initState() {
super.initState();
@ -151,11 +155,7 @@ class _DynamicInputScreenState extends State<DynamicInputScreenProfile> {
// 12.height,
DefaultButton(
LocaleKeys.next.tr(),
(getBasicDetDffStructureList ?? []).isEmpty
? null
: () => {
//Navigator.of(context).pushNamed(LOGIN_TYPE)
},
(getBasicDetDffStructureList ?? []).isEmpty ? null : () => {validateTransaction()},
).insideContainer,
],
),
@ -323,4 +323,47 @@ class _DynamicInputScreenState extends State<DynamicInputScreenProfile> {
}
return time;
}
void validateTransaction() async {
try {
Utils.showLoading(context);
List<Map<String, dynamic>> values = getBasicDetDffStructureList!.map((e) {
String tempVar = e.eSERVICESDV?.pIDCOLUMNNAME ?? "";
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('yyyy/MM/dd HH:mm:ss').format(date);
}
}
return ValidateEitTransactionModel(dATEVALUE: null, nAME: e.aPPLICATIONCOLUMNNAME, nUMBERVALUE: null, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: tempVar.toString()).toJson();
}).toList();
values.add(ValidateEitTransactionModel(dATEVALUE: null, nAME: "PEI_ACTION", nUMBERVALUE: null, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: "NEW_ROW").toJson());
values.add(ValidateEitTransactionModel(dATEVALUE: null, nAME: "PEI_EXTRA_INFO_ID", nUMBERVALUE: -1, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: null).toJson());
values.add(ValidateEitTransactionModel(dATEVALUE: null, nAME: "PEI_OBJECT_VERSION_NUMBER", nUMBERVALUE: 0, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: null).toJson());
List<Map<String, dynamic>> valuesCols = getBasicDetColsStructureList!.map((e) {
String tempVar = e.userBasicDetail!.vARCHAR2VALUE ?? "";
if (e.dATATYPE == "DATE") {
// for date format type, date format is changed
tempVar = e.userBasicDetail!.dATEVALUE ?? "";
if (tempVar.isNotEmpty) {
DateTime date = DateFormat('yyyy-MM-dd').parse(tempVar);
tempVar = DateFormat('yyyy/MM/dd HH:mm:ss').format(date);
}
}
return ValidateEitTransactionModel(dATEVALUE: tempVar, nAME: e.aPPLICATIONCOLUMNNAME, nUMBERVALUE: null, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: tempVar.toString()).toJson();
}).toList();
List<Map<String, dynamic>> transactionValues = new List.from(values)..addAll(valuesCols);
print(transactionValues);
//genericResponseModel = await MyAttendanceApiClient().validateEitTransaction(dESCFLEXCONTEXTCODE, dynamicParams!.dynamicId, values);
// SubmitEITTransactionList submitEITTransactionList = await MyAttendanceApiClient().submitEitTransaction(dESCFLEXCONTEXTCODE, dynamicParams!.dynamicId, values);
Utils.hideLoading(context);
// Navigator.pushNamed(context, AppRoutes.requestSubmitScreen, arguments: RequestSubmitScreenParams("title", submitEITTransactionList.pTRANSACTIONID!, submitEITTransactionList.pITEMKEY!, 'eit'));
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
}

@ -23,7 +23,7 @@ class _FamilyMembersState extends State<FamilyMembers> {
List<GetEmployeeContactsList> getEmployeeContactsList = [];
int? relationId;
int? flag;
@override
void initState() {
super.initState();
@ -110,7 +110,8 @@ class _FamilyMembersState extends State<FamilyMembers> {
Container(
child: InkWell(
onTap: () {
showUpdateAlertDialog(context);
relationId = getEmployeeContactsList[index]!.cONTACTRELATIONSHIPID!.toInt();
showUpdateAlertDialog(context, relationId!.toInt(), 2, LocaleKeys.update.tr());
},
child: RichText(
text: TextSpan(
@ -146,7 +147,8 @@ class _FamilyMembersState extends State<FamilyMembers> {
Container(
child: InkWell(
onTap: () {
showRemoveAlertDialog(context, getEmployeeContactsList[index]!.cONTACTRELATIONSHIPID!.toInt());
relationId = getEmployeeContactsList[index]!.cONTACTRELATIONSHIPID!.toInt();
showRemoveAlertDialog(context, relationId!.toInt());
},
child: RichText(
text: TextSpan(
@ -198,7 +200,7 @@ class _FamilyMembersState extends State<FamilyMembers> {
));
}
Widget footer() {
Widget footer() {
return Container(
decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(10),
@ -207,14 +209,15 @@ class _FamilyMembersState extends State<FamilyMembers> {
BoxShadow(color: MyColors.lightGreyEFColor, spreadRadius: 3),
],
),
child: DefaultButton("Add New Family Member", () async {
child: DefaultButton(LocaleKeys.addNewFamilyMember.tr(), () async {
Navigator.pushNamed(context, AppRoutes.addUpdateFamilyMember, arguments: {"relationID":relationId, "flag":1, "actionType":"ADD"});
// context.setLocale(const Locale("en", "US")); // to change Loacle
Profile();
// Profile();
}).insideContainer,
);
}
void showUpdateAlertDialog(BuildContext context) {
void showUpdateAlertDialog(BuildContext context, int relationId, int flag, String actionType) {
Widget cancelButton = TextButton(
child: Text(
LocaleKeys.cancel.tr(),
@ -228,14 +231,14 @@ class _FamilyMembersState extends State<FamilyMembers> {
LocaleKeys.ok.tr(),
),
onPressed: () {
continueDynamicForms();
Navigator.pushNamed(context, AppRoutes.addUpdateFamilyMember, arguments: {"relationID":relationId, "flag":flag, "actionType": "UPDATE"}, );
},
);
AlertDialog alert = AlertDialog(
title: Text(
LocaleKeys.confirm.tr(),
),
content: Text("Are You Sure You Want to Update this Member?"),
content: Text(LocaleKeys.updateThisMember.tr()),
actions: [
cancelButton,
continueButton,
@ -263,7 +266,7 @@ class _FamilyMembersState extends State<FamilyMembers> {
LocaleKeys.ok.tr(),
),
onPressed: () {
Navigator.pushNamed(context, AppRoutes.deleteFamilyMember);
Navigator.pushNamed(context, AppRoutes.deleteFamilyMember, arguments: relationId);
// continueDynamicForms();
},
);
@ -271,7 +274,7 @@ class _FamilyMembersState extends State<FamilyMembers> {
title: Text(
LocaleKeys.confirm.tr(),
),
content: Text("Are You Sure You Want to Remove this Member?"),
content: Text(LocaleKeys.removeThisMember.tr()),
actions: [
cancelButton,
continueButton,
@ -285,7 +288,7 @@ class _FamilyMembersState extends State<FamilyMembers> {
);
}
void continueDynamicForms() {
Navigator.pushNamed(context, AppRoutes.addDynamicInputProfile, arguments: DynamicFamilyMembersParams(LocaleKeys.profile_familyDetails.tr(), getEmployeeContactsList: getEmployeeContactsList));
}
// void continueDynamicForms() {
// Navigator.pushNamed(context, AppRoutes.addDynamicInputProfile, arguments: DynamicFamilyMembersParams(LocaleKeys.profile_familyDetails.tr(), getEmployeeContactsList: getEmployeeContactsList));
// }
}

@ -3,10 +3,16 @@ 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/get_employee_phones_model.dart';
import 'package:mohem_flutter_app/models/profile/phone_number_types_modek.dart';
import 'package:mohem_flutter_app/models/profile/submit_phone_transactions.dart';
import 'package:mohem_flutter_app/ui/misc/request_submit_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';
import 'package:mohem_flutter_app/widgets/dynamic_forms/dynamic_textfield_widget.dart';
@ -22,7 +28,7 @@ class PhoneNumbers extends StatefulWidget {
class _PhoneNumbersState extends State<PhoneNumbers> {
List<GetPhoneNumberTypesModel> getPhoneNumberTypesList = [];
SubmitPhonesTransactionList submitPhoneNumbers = SubmitPhonesTransactionList();
@override
void initState() {
super.initState();
@ -60,7 +66,7 @@ class _PhoneNumbersState extends State<PhoneNumbers> {
color: Color(0xff259CB8),
),
Text(
'Add new row',
LocaleKeys.addRow.tr(),
style: TextStyle(color: Color(0xff259CB8), fontWeight: FontWeight.bold),
)
]),
@ -97,7 +103,7 @@ class _PhoneNumbersState extends State<PhoneNumbers> {
child: Column(crossAxisAlignment: CrossAxisAlignment.start, children: [
PopupMenuButton(
child: DynamicTextFieldWidget(
"Please Select *",
LocaleKeys.pleaseSelect.tr(),
e.pHONETYPEMEANING ?? "",
isEnable: false,
isPopup: true,
@ -126,7 +132,7 @@ class _PhoneNumbersState extends State<PhoneNumbers> {
size: 18,
),
Text(
'Delete',
LocaleKeys.delete.tr(),
style: TextStyle(color: Colors.red, fontWeight: FontWeight.bold),
)
]),
@ -169,8 +175,24 @@ class _PhoneNumbersState extends State<PhoneNumbers> {
);
}
void updatePhone() {
print(widget.getEmployeePhonesList);
void updatePhone() async {
Utils.showLoading(context);
setUpdateStatus();
submitPhoneNumbers = await ProfileApiClient().submitPhoneNumbers(widget.getEmployeePhonesList);
Utils.hideLoading(context);
Navigator.pushNamed(context, AppRoutes.requestSubmitScreen,
arguments: RequestSubmitScreenParams(LocaleKeys.profile_contactDetails.tr(), submitPhoneNumbers.pTRANSACTIONID!, submitPhoneNumbers.pITEMKEY!, 'phone_numbers'));
}
void setUpdateStatus() {
widget.getEmployeePhonesList.forEach((element) {
if (element.aCTION == null) {
element.aCTION = 'UPDATE_ROW';
element.dATEFROM = '';
element.dATETO = '';
}
});
}
void addNewRow() {

@ -1,9 +1,11 @@
import 'dart:convert';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:flutter_html/flutter_html.dart';
import 'package:mohem_flutter_app/api/pending_transactions_api_client.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/get_announcement_details.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
@ -33,7 +35,7 @@ class _AnnouncementDetailsState extends State<AnnouncementDetails> {
backgroundColor: Colors.white,
appBar: AppBarWidget(
context,
title: "Announcements",
title: LocaleKeys.announcements.tr(),
),
body: SingleChildScrollView(
child: Container(

@ -1,5 +1,6 @@
import 'dart:convert';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/pending_transactions_api_client.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart';
@ -8,6 +9,7 @@ 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/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/get_announcements.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
import 'package:mohem_flutter_app/widgets/dynamic_forms/dynamic_textfield_widget.dart';
@ -40,7 +42,7 @@ class _AnnouncementsState extends State<Announcements> {
backgroundColor: Colors.white,
appBar: AppBarWidget(
context,
title: "Announcements",
title: LocaleKeys.announcements.tr(),
),
body: getAnnouncementsObject.isNotEmpty
? Container(
@ -54,7 +56,7 @@ class _AnnouncementsState extends State<Announcements> {
margin: const EdgeInsets.fromLTRB(12.0, 0.0, 12.0, 0.0),
child: DynamicTextFieldWidget(
"Search",
"Search Announcements",
LocaleKeys.searchAnnouncements.tr(),
isEnable: true,
suffixIconData: Icons.search,
isPopup: false,

@ -1,5 +1,7 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/classes/colors.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/dashboard/menu_entries.dart';
import 'package:mohem_flutter_app/models/dashboard/menus.dart';
import 'package:mohem_flutter_app/provider/eit_provider_model.dart';
@ -45,10 +47,10 @@ class AddEITScreen extends StatelessWidget {
labelColor: Colors.white,
tabs: [
Tab(
text: "Missing Swipe",
text: LocaleKeys.missingSwipes.tr(),
),
Tab(
text: "Swipe Request",
text: LocaleKeys.swipeRequest.tr(),
),
],
),

@ -34,7 +34,7 @@ class _MowadhafhiHomeState extends State<MowadhafhiHome> {
backgroundColor: Colors.white,
appBar: AppBarWidget(
context,
title: "Mowadhafhi Request",
title: LocaleKeys.mowadhafhiRequest.tr(),
),
body: Container(
margin: const EdgeInsets.only(top: 10.0),

@ -1,6 +1,7 @@
import 'dart:convert';
import 'dart:io';
import 'package:easy_localization/easy_localization.dart';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/mowadhafhi/mowadhafhi_api_client.dart';
@ -9,6 +10,7 @@ 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/mowadhafhi/get_department_sections.dart';
import 'package:mohem_flutter_app/models/mowadhafhi/get_project_departments.dart';
import 'package:mohem_flutter_app/models/mowadhafhi/get_projects.dart';
@ -56,7 +58,7 @@ class _MowadhafhiHRRequestState extends State<MowadhafhiHRRequest> {
backgroundColor: Colors.white,
appBar: AppBarWidget(
context,
title: "Mowadhafhi Request",
title: LocaleKeys.mowadhafhiRequest.tr(),
),
body: SingleChildScrollView(
child: getTicketTypesList.isNotEmpty
@ -78,7 +80,7 @@ class _MowadhafhiHRRequestState extends State<MowadhafhiHRRequest> {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Service Type: ".toText16(),
LocaleKeys.serviceType.tr().toText16(),
12.height,
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
@ -108,11 +110,11 @@ class _MowadhafhiHRRequestState extends State<MowadhafhiHRRequest> {
],
),
12.height,
"Department Name: ".toText16(),
LocaleKeys.departmentName.tr().toText16(),
12.height,
PopupMenuButton(
child: DynamicTextFieldWidget(
"Select Department",
LocaleKeys.selectDepartment.tr(),
selectedDepartment?.departmentName ?? "",
isEnable: false,
isPopup: true,
@ -128,11 +130,11 @@ class _MowadhafhiHRRequestState extends State<MowadhafhiHRRequest> {
setState(() {});
}),
12.height,
"Related Section: ".toText16(),
LocaleKeys.relatedSection.tr().toText16(),
12.height,
PopupMenuButton(
child: DynamicTextFieldWidget(
"Select Section",
LocaleKeys.selectSection.tr(),
selectedSection?.sectionName ?? "",
isEnable: false,
isPopup: true,
@ -148,11 +150,11 @@ class _MowadhafhiHRRequestState extends State<MowadhafhiHRRequest> {
setState(() {});
}),
12.height,
"Related Topic: ".toText16(),
LocaleKeys.relatedTopic.tr().toText16(),
12.height,
PopupMenuButton(
child: DynamicTextFieldWidget(
"Select Topic",
LocaleKeys.selectTopic.tr(),
selectedTopic?.topicName ?? "",
isEnable: false,
isPopup: true,
@ -168,11 +170,11 @@ class _MowadhafhiHRRequestState extends State<MowadhafhiHRRequest> {
setState(() {});
}),
12.height,
"Supporting Document: ".toText16(),
LocaleKeys.supportingDocument.tr().toText16(),
12.height,
attachmentView("Attachments"),
12.height,
"Description: ".toText16(),
LocaleKeys.description.tr().toText16(),
12.height,
DynamicTextFieldWidget(
"",
@ -203,7 +205,7 @@ class _MowadhafhiHRRequestState extends State<MowadhafhiHRRequest> {
12.width,
Expanded(
child: DefaultButton(
"Submit",
LocaleKeys.submit.tr(),
!checkValidation()
? null
: () {

@ -1,9 +1,11 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/mowadhafhi/mowadhafhi_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/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/mowadhafhi/get_ticket_details.dart';
import 'package:mohem_flutter_app/models/mowadhafhi/get_ticket_transactions.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
@ -41,7 +43,7 @@ class _RequestDetailsState extends State<MowadhafhiRequestDetails> {
backgroundColor: Colors.white,
appBar: AppBarWidget(
context,
title: "Mowadhafhi Request",
title: LocaleKeys.mowadhafhiRequest.tr(),
),
body: SingleChildScrollView(
child: getTicketsByEmployeeList.length != 0
@ -74,16 +76,16 @@ class _RequestDetailsState extends State<MowadhafhiRequestDetails> {
],
),
8.height,
"Ticket Reference: ".toText12(color: MyColors.grey98Color),
LocaleKeys.ticketReference.tr().toText12(color: MyColors.grey98Color),
getTicketsByEmployeeList![0].ticketReferenceNo!.toText14(color: MyColors.grey57Color),
8.height,
"Section: ".toText12(color: MyColors.grey98Color),
LocaleKeys.section.tr().toText12(color: MyColors.grey98Color),
getTicketsByEmployeeList![0].sectionName!.toText14(color: MyColors.grey57Color),
8.height,
"Topic: ".toText12(color: MyColors.grey98Color),
LocaleKeys.topic.tr().toText12(color: MyColors.grey98Color),
getTicketsByEmployeeList![0].topicName!.toText14(color: MyColors.grey57Color),
8.height,
"Description: ".toText12(color: MyColors.grey98Color),
LocaleKeys.description.tr().toText12(color: MyColors.grey98Color),
getTicketsByEmployeeList![0].description!.toText14(color: MyColors.grey57Color),
],
),
@ -125,7 +127,7 @@ class _RequestDetailsState extends State<MowadhafhiRequestDetails> {
children: [
Row(
children: [
"Action By: ".toText14(color: MyColors.grey57Color),
LocaleKeys.actionBy.tr().toText14(color: MyColors.grey57Color),
getTicketTransactionsList![index].actionBy!.toText14(color: MyColors.grey57Color),
],
),

@ -42,7 +42,7 @@ class _PendingTransactionsState extends State<PendingTransactions> {
backgroundColor: Colors.white,
appBar: AppBarWidget(
context,
title: "Pending Transactions",
title: LocaleKeys.pendingTransactions.tr(),
),
body: SingleChildScrollView(
child: Container(
@ -65,7 +65,7 @@ class _PendingTransactionsState extends State<PendingTransactions> {
12.height,
PopupMenuButton(
child: DynamicTextFieldWidget(
"Please select request type",
LocaleKeys.selectRequestType.tr(),
selectedFunction?.fUNCTIONPROMPT ?? "",
isEnable: false,
isPopup: true,
@ -81,7 +81,7 @@ class _PendingTransactionsState extends State<PendingTransactions> {
}),
12.height,
DynamicTextFieldWidget(
"Date From: ",
LocaleKeys.dateFrom.tr(),
selectedDateFrom.toString().split(" ")[0],
suffixIconData: Icons.calendar_today,
isEnable: false,
@ -92,7 +92,7 @@ class _PendingTransactionsState extends State<PendingTransactions> {
).paddingOnly(bottom: 12),
12.height,
DynamicTextFieldWidget(
"Date To: ",
LocaleKeys.dateTo.tr(),
selectedDateTo.toString().split(" ")[0],
suffixIconData: Icons.calendar_today,
isEnable: false,

@ -1,9 +1,11 @@
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/material.dart';
import 'package:mohem_flutter_app/api/pending_transactions_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/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/pending_transactions/get_pending_transactions_details.dart';
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
@ -43,7 +45,7 @@ class _PendingTransactionsDetailsState extends State<PendingTransactionsDetails>
backgroundColor: Colors.white,
appBar: AppBarWidget(
context,
title: "Pending Transactions",
title: LocaleKeys.pendingTransactions.tr(),
),
body: getPendingTransactionsDetails.isNotEmpty
? Container(
@ -105,7 +107,7 @@ class _PendingTransactionsDetailsState extends State<PendingTransactionsDetails>
padding: const EdgeInsets.only(top: 0.0),
child: Row(
children: [
"Request Type: ".toText14(color: MyColors.grey57Color),
LocaleKeys.requestType.tr().toText14(color: MyColors.grey57Color),
getPendingTransactionsDetails[index].rEQUESTTYPE!.toText14(color: MyColors.redColor),
],
),

@ -1,5 +1,7 @@
import 'dart:ui';
import 'dart:convert';
import 'dart:ui';
import 'package:easy_localization/easy_localization.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@ -7,6 +9,7 @@ import 'package:image_picker/image_picker.dart';
import 'package:mohem_flutter_app/api/profile_api_client.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
import 'package:mohem_flutter_app/models/member_information_list_model.dart';
import 'package:mohem_flutter_app/ui/screens/profile/widgets/header.dart';
@ -30,6 +33,7 @@ class _ProfileScreenState extends State<ProfileScreen> {
void initState() {
super.initState();
memberInformationList = AppState().memberInformationList!;
setState(() {});
//getEmployeeBasicDetails();
}
@ -109,7 +113,7 @@ class _ProfileScreenState extends State<ProfileScreen> {
padding: EdgeInsets.only(left: 20, right: 20),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [Text('OK'), Text('CANCEL')],
children: [Text(LocaleKeys.ok.tr()), Text(LocaleKeys.cancel.tr())],
)),
BottomSheetItem(
onTap: () {

@ -395,8 +395,8 @@ class _WorkListDetailScreenState extends State<WorkListDetailScreen> {
showDialog(
context: context,
builder: (cxt) => ConfirmDialog(
message: "Are you sure want to reject?",
okTitle: "Reject",
message: LocaleKeys.wantToReject.tr(),
okTitle: LocaleKeys.reject.tr(),
onTap: () async {
Navigator.pop(cxt);
Utils.showLoading(context);

@ -174,7 +174,7 @@ class ServicesMenuShimmer extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Expanded(
child: "Attendance".toText11(isBold: false).toShimmer(),
child: LocaleKeys.attendance.tr().toText11(isBold: false).toShimmer(),
),
6.width,
SvgPicture.asset("assets/images/arrow_next.svg").paddingOnly(bottom: 4).toShimmer()

Loading…
Cancel
Save