Merge branch 'development_sikander' into 'master'

Development sikander

See merge request mirza.shafique/mohem_flutter_app!65
merge-requests/1/merge
Sikander Saleem 3 years ago
commit e7e6d6e7a1

@ -2,6 +2,7 @@ import 'package:mohem_flutter_app/api/api_client.dart';
import 'package:mohem_flutter_app/app_state/app_state.dart'; import 'package:mohem_flutter_app/app_state/app_state.dart';
import 'package:mohem_flutter_app/classes/consts.dart'; import 'package:mohem_flutter_app/classes/consts.dart';
import 'package:mohem_flutter_app/models/generic_response_model.dart'; import 'package:mohem_flutter_app/models/generic_response_model.dart';
import 'package:mohem_flutter_app/models/leave_balance/calculate_absence_duration_model.dart';
import 'package:mohem_flutter_app/models/leave_balance/get_absence_attendance_types_list_model.dart'; import 'package:mohem_flutter_app/models/leave_balance/get_absence_attendance_types_list_model.dart';
import 'package:mohem_flutter_app/models/leave_balance/get_absence_dff_structure_list_model.dart'; import 'package:mohem_flutter_app/models/leave_balance/get_absence_dff_structure_list_model.dart';
import 'package:mohem_flutter_app/models/leave_balance/get_absence_transaction_list_model.dart'; import 'package:mohem_flutter_app/models/leave_balance/get_absence_transaction_list_model.dart';
@ -33,6 +34,24 @@ class LeaveBalanceApiClient {
}, url, postParams); }, url, postParams);
} }
Future<CalculateAbsenceDuration> calculateAbsenceDuration(int pAbsenceAttendanceTypeID, String pDateStart, String pDateEnd, int pSelectedResopID) async {
String url = "${ApiConsts.erpRest}CALCULATE_ABSENCE_DURATION";
Map<String, dynamic> postParams = {
"P_ABSENCE_ATTENDANCE_TYPE_ID": pAbsenceAttendanceTypeID,
"P_DATE_END": pDateStart, //"29-Sep-2022",
"P_DATE_START": pDateEnd,
"P_SELECTED_RESP_ID": pSelectedResopID,
"P_MENU_TYPE": "E",
"P_TIME_END": null,
"P_TIME_START": null,
};
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData.calculateAbsenceDuration!;
}, url, postParams);
}
Future<List<GetAbsenceDffStructureList>> getAbsenceDffStructure(String pDescFlexContextCode, String pFunctionName, int pSelectedResopID) async { Future<List<GetAbsenceDffStructureList>> getAbsenceDffStructure(String pDescFlexContextCode, String pFunctionName, int pSelectedResopID) async {
String url = "${ApiConsts.erpRest}GET_ABSENCE_DFF_STRUCTURE"; String url = "${ApiConsts.erpRest}GET_ABSENCE_DFF_STRUCTURE";
Map<String, dynamic> postParams = {"P_DESC_FLEX_CONTEXT_CODE": pDescFlexContextCode, "P_FUNCTION_NAME": pFunctionName, "P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": pSelectedResopID}; Map<String, dynamic> postParams = {"P_DESC_FLEX_CONTEXT_CODE": pDescFlexContextCode, "P_FUNCTION_NAME": pFunctionName, "P_MENU_TYPE": "E", "P_SELECTED_RESP_ID": pSelectedResopID};
@ -42,4 +61,58 @@ class LeaveBalanceApiClient {
return responseData.getAbsenceDffStructureList ?? []; return responseData.getAbsenceDffStructureList ?? [];
}, url, postParams); }, url, postParams);
} }
Future<GenericResponseModel> validateAbsenceTransaction(
String pDescFlexContextCode, String pFunctionName, int pAbsenceAttendanceTypeID, String pReplacementUserName, String pDateStart, String pDateEnd, int pSelectedResopID, Map<String, String> data,
{String comments = ""}) async {
String url = "${ApiConsts.erpRest}VALIDATE_ABSENCE_TRANSACTION";
Map<String, dynamic> postParams = {
"P_DESC_FLEX_CONTEXT_CODE": pDescFlexContextCode,
"P_FUNCTION_NAME": pFunctionName,
"P_REPLACEMENT_USER_NAME": pReplacementUserName,
"P_ABSENCE_ACTION": "CREATE",
"P_ABSENCE_COMMENTS": comments,
"P_ABSENCE_ATTENDANCE_ID": pAbsenceAttendanceTypeID,
"P_ABSENCE_ATTENDANCE_TYPE_ID": pAbsenceAttendanceTypeID,
"P_DATE_END": pDateStart, //"29-Sep-2022",
"P_DATE_START": pDateEnd,
"P_SELECTED_RESP_ID": pSelectedResopID,
"P_MENU_TYPE": "E",
"P_TIME_END": null,
"P_TIME_START": null,
};
postParams.addAll(data);
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData;
}, url, postParams);
}
Future<GenericResponseModel> submitAbsenceTransaction(
String pDescFlexContextCode, String pFunctionName, int pAbsenceAttendanceTypeID, String pReplacementUserName, String pDateStart, String pDateEnd, int pSelectedResopID, Map<String, String> data,
{String comments = ""}) async {
String url = "${ApiConsts.erpRest}SUBMIT_ABSENCE_TRANSACTION";
Map<String, dynamic> postParams = {
"P_DESC_FLEX_CONTEXT_CODE": pDescFlexContextCode,
"P_FUNCTION_NAME": pFunctionName,
"P_REPLACEMENT_USER_NAME": pReplacementUserName,
"P_ABSENCE_ACTION": "CREATE",
"P_ABSENCE_COMMENTS": comments,
"P_ABSENCE_ATTENDANCE_ID": pAbsenceAttendanceTypeID,
"P_ABSENCE_ATTENDANCE_TYPE_ID": pAbsenceAttendanceTypeID,
"P_DATE_END": pDateStart, //"29-Sep-2022",
"P_DATE_START": pDateEnd,
"P_SELECTED_RESP_ID": pSelectedResopID,
"P_MENU_TYPE": "E",
"P_TIME_END": null,
"P_TIME_START": null,
};
postParams.addAll(data);
postParams.addAll(AppState().postParamsJson);
return await ApiClient().postJsonForObject((json) {
GenericResponseModel? responseData = GenericResponseModel.fromJson(json);
return responseData;
}, url, postParams);
}
} }

@ -192,4 +192,66 @@ class Utils {
], ],
); );
} }
/// EIT Forms date formats
static String getMonthNamedFormat(DateTime date) {
/// it will return like "29-Sep-2022"
return DateFormat('dd-MMM-yyyy').format(date);
}
static String reverseFormatDate(String date) {
String formattedDate;
if (date.isNotEmpty) {
formattedDate = date.replaceAll('/', '-');
formattedDate = formattedDate.replaceAll(' 00:00:00', '');
} else {
formattedDate = date;
}
return formattedDate;
}
static String formatStandardDate(String date) {
String formattedDate;
if (date.isNotEmpty) {
formattedDate = date.replaceAll('-', '/');
} else {
formattedDate = date;
}
return formattedDate;
}
static String reverseFormatStandardDate(String date) {
String formattedDate;
if (date.isNotEmpty) {
formattedDate = date.replaceAll('/', '-');
} else {
formattedDate = date;
}
return formattedDate;
}
static String formatDate(String date) {
String formattedDate;
if (date.isNotEmpty) {
date = date.substring(0, 10);
formattedDate = date.replaceAll('-', '/');
formattedDate = formattedDate + ' 00:00:00';
} else {
formattedDate = date;
}
return formattedDate;
}
static String formatDateNew(String date) {
String formattedDate;
if (date.isNotEmpty) {
formattedDate = date.split('T')[0];
formattedDate = formattedDate + ' 00:00:00';
} else {
formattedDate = date;
}
return formattedDate;
}
} }

@ -33,6 +33,7 @@ import 'package:mohem_flutter_app/models/get_stamp_ms_notification_body_list_mod
import 'package:mohem_flutter_app/models/get_stamp_ns_notification_body_list_model.dart'; import 'package:mohem_flutter_app/models/get_stamp_ns_notification_body_list_model.dart';
import 'package:mohem_flutter_app/models/get_time_card_summary_list_model.dart'; import 'package:mohem_flutter_app/models/get_time_card_summary_list_model.dart';
import 'package:mohem_flutter_app/models/get_user_item_type_list.dart'; import 'package:mohem_flutter_app/models/get_user_item_type_list.dart';
import 'package:mohem_flutter_app/models/leave_balance/calculate_absence_duration_model.dart';
import 'package:mohem_flutter_app/models/leave_balance/get_absence_attendance_types_list_model.dart'; import 'package:mohem_flutter_app/models/leave_balance/get_absence_attendance_types_list_model.dart';
import 'package:mohem_flutter_app/models/leave_balance/get_absence_dff_structure_list_model.dart'; import 'package:mohem_flutter_app/models/leave_balance/get_absence_dff_structure_list_model.dart';
import 'package:mohem_flutter_app/models/leave_balance/get_absence_transaction_list_model.dart'; import 'package:mohem_flutter_app/models/leave_balance/get_absence_transaction_list_model.dart';
@ -72,9 +73,9 @@ import 'package:mohem_flutter_app/models/start_eit_approval_process_model.dart';
import 'package:mohem_flutter_app/models/start_phone_approval_process_model.dart'; import 'package:mohem_flutter_app/models/start_phone_approval_process_model.dart';
import 'package:mohem_flutter_app/models/submit_eit_transaction_list_model.dart'; import 'package:mohem_flutter_app/models/submit_eit_transaction_list_model.dart';
import 'package:mohem_flutter_app/models/subordinates_on_leaves_model.dart'; import 'package:mohem_flutter_app/models/subordinates_on_leaves_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/create_vacation_rule_list_model.dart';
import 'package:mohem_flutter_app/models/update_item_type_success_list.dart'; import 'package:mohem_flutter_app/models/update_item_type_success_list.dart';
import 'package:mohem_flutter_app/models/update_user_item_type_list.dart'; import 'package:mohem_flutter_app/models/update_user_item_type_list.dart';
import 'package:mohem_flutter_app/models/vacation_rule/create_vacation_rule_list_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/get_item_type_notifications_list_model.dart'; import 'package:mohem_flutter_app/models/vacation_rule/get_item_type_notifications_list_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/get_notification_reassign_mode_list_model.dart'; import 'package:mohem_flutter_app/models/vacation_rule/get_notification_reassign_mode_list_model.dart';
import 'package:mohem_flutter_app/models/vacation_rule/get_vacation_rules_list_model.dart'; import 'package:mohem_flutter_app/models/vacation_rule/get_vacation_rules_list_model.dart';
@ -123,7 +124,7 @@ class GenericResponseModel {
String? bCLogo; String? bCLogo;
BasicMemberInformationModel? basicMemberInformation; BasicMemberInformationModel? basicMemberInformation;
bool? businessCardPrivilege; bool? businessCardPrivilege;
String? calculateAbsenceDuration; CalculateAbsenceDuration? calculateAbsenceDuration;
String? cancelHRTransactionLIst; String? cancelHRTransactionLIst;
String? chatEmployeeLoginList; String? chatEmployeeLoginList;
String? companyBadge; String? companyBadge;
@ -655,7 +656,7 @@ class GenericResponseModel {
bCLogo = json['BC_Logo']; bCLogo = json['BC_Logo'];
basicMemberInformation = json['BasicMemberInformation'] != null ? BasicMemberInformationModel.fromJson(json['BasicMemberInformation']) : null; basicMemberInformation = json['BasicMemberInformation'] != null ? BasicMemberInformationModel.fromJson(json['BasicMemberInformation']) : null;
businessCardPrivilege = json['BusinessCardPrivilege']; businessCardPrivilege = json['BusinessCardPrivilege'];
calculateAbsenceDuration = json['CalculateAbsenceDuration']; calculateAbsenceDuration = json['CalculateAbsenceDuration'] != null ? new CalculateAbsenceDuration.fromJson(json['CalculateAbsenceDuration']) : null;
cancelHRTransactionLIst = json['CancelHRTransactionLIst']; cancelHRTransactionLIst = json['CancelHRTransactionLIst'];
chatEmployeeLoginList = json['Chat_EmployeeLoginList']; chatEmployeeLoginList = json['Chat_EmployeeLoginList'];
companyBadge = json['CompanyBadge']; companyBadge = json['CompanyBadge'];
@ -857,8 +858,7 @@ class GenericResponseModel {
if (json['GetEmployeeSubordinatesList'] != null) { if (json['GetEmployeeSubordinatesList'] != null) {
getEmployeeSubordinatesList = <GetEmployeeSubordinatesList>[]; getEmployeeSubordinatesList = <GetEmployeeSubordinatesList>[];
json['GetEmployeeSubordinatesList'].forEach((v) { json['GetEmployeeSubordinatesList'].forEach((v) {
getEmployeeSubordinatesList! getEmployeeSubordinatesList!.add(new GetEmployeeSubordinatesList.fromJson(v));
.add(new GetEmployeeSubordinatesList.fromJson(v));
}); });
} }
getFliexfieldStructureList = json['GetFliexfieldStructureList']; getFliexfieldStructureList = json['GetFliexfieldStructureList'];
@ -1253,13 +1253,10 @@ class GenericResponseModel {
if (json['UpdateItemTypeSuccessList'] != null) { if (json['UpdateItemTypeSuccessList'] != null) {
updateItemTypeSuccessList = <UpdateItemTypeSuccessList>[]; updateItemTypeSuccessList = <UpdateItemTypeSuccessList>[];
json['UpdateItemTypeSuccessList'].forEach((v) { json['UpdateItemTypeSuccessList'].forEach((v) {
updateItemTypeSuccessList! updateItemTypeSuccessList!.add(new UpdateItemTypeSuccessList.fromJson(v));
.add(new UpdateItemTypeSuccessList.fromJson(v));
}); });
} }
updateUserItemTypesList = json['UpdateUserItemTypesList'] != null updateUserItemTypesList = json['UpdateUserItemTypesList'] != null ? new UpdateUserItemTypesList.fromJson(json['UpdateUserItemTypesList']) : null;
? new UpdateUserItemTypesList.fromJson(json['UpdateUserItemTypesList'])
: null;
updateVacationRuleList = json['UpdateVacationRuleList']; updateVacationRuleList = json['UpdateVacationRuleList'];
vHREmployeeLoginList = json['VHR_EmployeeLoginList']; vHREmployeeLoginList = json['VHR_EmployeeLoginList'];
vHRGetEmployeeDetailsList = json['VHR_GetEmployeeDetailsList']; vHRGetEmployeeDetailsList = json['VHR_GetEmployeeDetailsList'];
@ -1334,7 +1331,10 @@ class GenericResponseModel {
data['BasicMemberInformation'] = this.basicMemberInformation!.toJson(); data['BasicMemberInformation'] = this.basicMemberInformation!.toJson();
} }
data['BusinessCardPrivilege'] = this.businessCardPrivilege; data['BusinessCardPrivilege'] = this.businessCardPrivilege;
data['CalculateAbsenceDuration'] = this.calculateAbsenceDuration;
if (this.calculateAbsenceDuration != null) {
data['CalculateAbsenceDuration'] = this.calculateAbsenceDuration!.toJson();
}
data['CancelHRTransactionLIst'] = this.cancelHRTransactionLIst; data['CancelHRTransactionLIst'] = this.cancelHRTransactionLIst;
data['Chat_EmployeeLoginList'] = this.chatEmployeeLoginList; data['Chat_EmployeeLoginList'] = this.chatEmployeeLoginList;
data['CompanyBadge'] = this.companyBadge; data['CompanyBadge'] = this.companyBadge;
@ -1449,8 +1449,7 @@ class GenericResponseModel {
data['GetEmployeePhonesList'] = this.getEmployeePhonesList!.map((v) => v.toJson()).toList(); data['GetEmployeePhonesList'] = this.getEmployeePhonesList!.map((v) => v.toJson()).toList();
} }
if (this.getEmployeeSubordinatesList != null) { if (this.getEmployeeSubordinatesList != null) {
data['GetEmployeeSubordinatesList'] = data['GetEmployeeSubordinatesList'] = this.getEmployeeSubordinatesList!.map((v) => v.toJson()).toList();
this.getEmployeeSubordinatesList!.map((v) => v.toJson()).toList();
} }
data['GetFliexfieldStructureList'] = this.getFliexfieldStructureList; data['GetFliexfieldStructureList'] = this.getFliexfieldStructureList;
data['GetHrCollectionNotificationBodyList'] = this.getHrCollectionNotificationBodyList; data['GetHrCollectionNotificationBodyList'] = this.getHrCollectionNotificationBodyList;
@ -1689,8 +1688,7 @@ class GenericResponseModel {
data['UpdateAttachmentList'] = this.updateAttachmentList; data['UpdateAttachmentList'] = this.updateAttachmentList;
data['UpdateEmployeeImageList'] = this.updateEmployeeImageList; data['UpdateEmployeeImageList'] = this.updateEmployeeImageList;
if (this.updateItemTypeSuccessList != null) { if (this.updateItemTypeSuccessList != null) {
data['UpdateItemTypeSuccessList'] = data['UpdateItemTypeSuccessList'] = this.updateItemTypeSuccessList!.map((v) => v.toJson()).toList();
this.updateItemTypeSuccessList!.map((v) => v.toJson()).toList();
} }
if (this.updateUserItemTypesList != null) { if (this.updateUserItemTypesList != null) {
data['UpdateUserItemTypesList'] = this.updateUserItemTypesList!.toJson(); data['UpdateUserItemTypesList'] = this.updateUserItemTypesList!.toJson();

@ -0,0 +1,24 @@
class CalculateAbsenceDuration {
int? pABSENCEDAYS;
int? pABSENCEHOURS;
String? pRETURNMSG;
String? pRETURNSTATUS;
CalculateAbsenceDuration({this.pABSENCEDAYS, this.pABSENCEHOURS, this.pRETURNMSG, this.pRETURNSTATUS});
CalculateAbsenceDuration.fromJson(Map<String, dynamic> json) {
pABSENCEDAYS = json['P_ABSENCE_DAYS'];
pABSENCEHOURS = json['P_ABSENCE_HOURS'];
pRETURNMSG = json['P_RETURN_MSG'];
pRETURNSTATUS = json['P_RETURN_STATUS'];
}
Map<String, dynamic> toJson() {
Map<String, dynamic> data = new Map<String, dynamic>();
data['P_ABSENCE_DAYS'] = this.pABSENCEDAYS;
data['P_ABSENCE_HOURS'] = this.pABSENCEHOURS;
data['P_RETURN_MSG'] = this.pRETURNMSG;
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
return data;
}
}

@ -190,4 +190,6 @@ class GetAbsenceDffStructureList {
data['VALIDATION_TYPE_DSP'] = this.vALIDATIONTYPEDSP; data['VALIDATION_TYPE_DSP'] = this.vALIDATIONTYPEDSP;
return data; return data;
} }
bool get isDefaultTypeIsCDPS => (dEFAULTTYPE == "C" || dEFAULTTYPE == "D" || dEFAULTTYPE == "P" || dEFAULTTYPE == "S");
} }

@ -37,8 +37,6 @@ class GetAbsenceTransactionList {
this.uPDATEBUTTON}); this.uPDATEBUTTON});
GetAbsenceTransactionList.fromJson(Map<String, dynamic> json) { GetAbsenceTransactionList.fromJson(Map<String, dynamic> json) {
print("json:$json");
print("type:ABSENCE_DAYS:${(json['ABSENCE_DAYS']).runtimeType}");
aBSENCEATTENDANCEID = json['ABSENCE_ATTENDANCE_ID']; aBSENCEATTENDANCEID = json['ABSENCE_ATTENDANCE_ID'];
aBSENCEATTENDANCETYPEID = json['ABSENCE_ATTENDANCE_TYPE_ID']; aBSENCEATTENDANCETYPEID = json['ABSENCE_ATTENDANCE_TYPE_ID'];
aBSENCECATEGORY = json['ABSENCE_CATEGORY']; aBSENCECATEGORY = json['ABSENCE_CATEGORY'];

@ -8,6 +8,8 @@ import 'package:mohem_flutter_app/classes/utils.dart';
import 'package:mohem_flutter_app/extensions/int_extensions.dart'; import 'package:mohem_flutter_app/extensions/int_extensions.dart';
import 'package:mohem_flutter_app/extensions/widget_extensions.dart'; import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
import 'package:mohem_flutter_app/generated/locale_keys.g.dart'; import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart';
import 'package:mohem_flutter_app/models/leave_balance/calculate_absence_duration_model.dart';
import 'package:mohem_flutter_app/models/leave_balance/get_absence_attendance_types_list_model.dart'; import 'package:mohem_flutter_app/models/leave_balance/get_absence_attendance_types_list_model.dart';
import 'package:mohem_flutter_app/models/leave_balance/get_absence_dff_structure_list_model.dart'; import 'package:mohem_flutter_app/models/leave_balance/get_absence_dff_structure_list_model.dart';
import 'package:mohem_flutter_app/models/worklist/replacement_list_model.dart'; import 'package:mohem_flutter_app/models/worklist/replacement_list_model.dart';
@ -31,12 +33,14 @@ class _AddLeaveBalanceScreenState extends State<AddLeaveBalanceScreen> {
List<GetAbsenceAttendanceTypesList> absenceList = []; List<GetAbsenceAttendanceTypesList> absenceList = [];
GetAbsenceAttendanceTypesList? selectedAbsenceType; GetAbsenceAttendanceTypesList? selectedAbsenceType;
DateTime? startTime; DateTime? startDateTime;
DateTime? endTime; DateTime? endDateTime;
int totalDays = 0; int? totalDays;
String comment = ""; String comment = "";
ReplacementList? selectedReplacementEmployee; ReplacementList? selectedReplacementEmployee;
DateTime selectedDate = DateTime(DateTime.now().year, DateTime.now().month, DateTime.now().day);
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@ -68,6 +72,21 @@ class _AddLeaveBalanceScreenState extends State<AddLeaveBalanceScreen> {
} }
} }
void getCalculatedAbsenceDuration() async {
try {
Utils.showLoading(context);
CalculateAbsenceDuration duration = await LeaveBalanceApiClient()
.calculateAbsenceDuration(selectedAbsenceType!.aBSENCEATTENDANCETYPEID!, Utils.getMonthNamedFormat(startDateTime!), Utils.getMonthNamedFormat(endDateTime!), -999);
print(duration.toJson());
totalDays = duration.pABSENCEDAYS;
Utils.hideLoading(context);
setState(() {});
} catch (ex) {
Utils.hideLoading(context);
Utils.handleException(ex, context, null);
}
}
@override @override
void dispose() { void dispose() {
super.dispose(); super.dispose();
@ -108,13 +127,13 @@ class _AddLeaveBalanceScreenState extends State<AddLeaveBalanceScreen> {
12.height, 12.height,
DynamicTextFieldWidget( DynamicTextFieldWidget(
LocaleKeys.startDateT.tr() + "*", LocaleKeys.startDateT.tr() + "*",
startTime == null ? "Select date" : startTime.toString(), startDateTime == null ? "Select date" : startDateTime.toString().split(' ')[0],
suffixIconData: Icons.calendar_today, suffixIconData: Icons.calendar_today,
isEnable: false, isEnable: false,
onTap: () async { onTap: () async {
var start = await _selectDate(context, startTime); var start = await _selectDate(context);
if (start != startTime) { if (start != startDateTime) {
startTime = start; startDateTime = start;
setState(() {}); setState(() {});
} }
}, },
@ -122,22 +141,26 @@ class _AddLeaveBalanceScreenState extends State<AddLeaveBalanceScreen> {
12.height, 12.height,
DynamicTextFieldWidget( DynamicTextFieldWidget(
LocaleKeys.endDateT.tr() + "*", LocaleKeys.endDateT.tr() + "*",
endTime == null ? "Select date" : endTime.toString(), endDateTime == null ? "Select date" : endDateTime.toString().split(' ')[0],
suffixIconData: Icons.calendar_today, suffixIconData: Icons.calendar_today,
isEnable: false, isEnable: false,
isReadOnly: selectedAbsenceType == null || startDateTime == null,
onTap: () async { onTap: () async {
var end = await _selectDate(context, endTime); if (selectedAbsenceType == null || startDateTime == null) return;
if (end != endTime) { var end = await _selectDate(context);
endTime = end; if (end != endDateTime) {
endDateTime = end;
setState(() {}); setState(() {});
getCalculatedAbsenceDuration();
} }
}, },
), ),
12.height, 12.height,
DynamicTextFieldWidget( DynamicTextFieldWidget(
"Total Days", "Total Days",
"Days", totalDays?.toString() ?? "Calculated days",
isInputTypeNum: true, isInputTypeNum: true,
isEnable: false,
onChange: (input) { onChange: (input) {
totalDays = int.parse(input); totalDays = int.parse(input);
}, },
@ -171,306 +194,321 @@ class _AddLeaveBalanceScreenState extends State<AddLeaveBalanceScreen> {
comment = input; comment = input;
}, },
), ),
ListView.separated(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
padding: const EdgeInsets.only(top: 12),
itemBuilder: (cxt, int parentIndex) => parseDynamicFormatType(getabsenceDffStructureList[parentIndex], parentIndex),
separatorBuilder: (cxt, index) => 0.height,
itemCount: getabsenceDffStructureList.length,
)
], ],
).expanded, ).expanded,
DefaultButton( DefaultButton(
LocaleKeys.next.tr(), LocaleKeys.next.tr(),
(selectedAbsenceType == null || startTime == null || endTime == null) ? null : () {}, (selectedAbsenceType == null || startDateTime == null || endDateTime == null) ? null : () {},
).insideContainer ).insideContainer
], ],
), ),
); );
} }
// Widget parseDynamicFormatType(GetAbsenceDffStructureList model, int index) { Widget parseDynamicFormatType(GetAbsenceDffStructureList model, int index) {
// if (model.dISPLAYFLAG != "N") { if (model.dISPLAYFLAG != "N") {
// if (model.vALIDATIONTYPE == "N") { if (model.vALIDATIONTYPE == "N") {
// if (model.fORMATTYPE == "C") { if (model.fORMATTYPE == "C") {
// return DynamicTextFieldWidget( return DynamicTextFieldWidget(
// (model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""), (model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
// model.eSERVICESDV?.pIDCOLUMNNAME ?? "", model.eSERVICESDV?.pIDCOLUMNNAME ?? "",
// isReadOnly: model.rEADONLY == "Y", isReadOnly: model.rEADONLY == "Y",
// onChange: (text) { onChange: (text) {
// model.eSERVICESDV ??= ESERVICESDV(); model.eSERVICESDV ??= ESERVICESDV();
// model.eSERVICESDV!.pIDCOLUMNNAME = text; model.eSERVICESDV!.pIDCOLUMNNAME = text;
// }, },
// ).paddingOnly(bottom: 12); ).paddingOnly(bottom: 12);
// } else if (model.fORMATTYPE == "N") { } else if (model.fORMATTYPE == "N") {
// return DynamicTextFieldWidget( return DynamicTextFieldWidget(
// (model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""), (model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
// model.eSERVICESDV?.pIDCOLUMNNAME ?? "", model.eSERVICESDV?.pIDCOLUMNNAME ?? "",
// isReadOnly: model.rEADONLY == "Y", isReadOnly: model.rEADONLY == "Y",
// isInputTypeNum: true, isInputTypeNum: true,
// onChange: (text) { onChange: (text) {
// model.eSERVICESDV ??= ESERVICESDV(); model.eSERVICESDV ??= ESERVICESDV();
// model.eSERVICESDV!.pIDCOLUMNNAME = text; model.eSERVICESDV!.pIDCOLUMNNAME = text;
// }, },
// ).paddingOnly(bottom: 12); ).paddingOnly(bottom: 12);
// } else if (model.fORMATTYPE == "X") { } else if (model.fORMATTYPE == "X") {
// String displayText = model.eSERVICESDV?.pIDCOLUMNNAME ?? (getabsenceDffStructureList![index].fieldAnswer ?? ""); String displayText = model.eSERVICESDV?.pIDCOLUMNNAME ?? "";
//
// if (getabsenceDffStructureList[index].isDefaultTypeIsCDPS) { if (getabsenceDffStructureList[index].isDefaultTypeIsCDPS) {
// if (displayText.contains(" 00:00:00")) { if (displayText.contains(" 00:00:00")) {
// displayText = displayText.replaceAll(" 00:00:00", ""); displayText = displayText.replaceAll(" 00:00:00", "");
// } }
// if (displayText.contains("/")) { if (displayText.contains("/")) {
// displayText = DateFormat('yyyy-MM-dd').format(DateFormat("yyyy/MM/dd").parse(displayText)); displayText = DateFormat('yyyy-MM-dd').format(DateFormat("yyyy/MM/dd").parse(displayText));
// } }
// } }
// return DynamicTextFieldWidget( return DynamicTextFieldWidget(
// (model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""), (model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
// displayText, displayText,
// suffixIconData: Icons.calendar_today, suffixIconData: Icons.calendar_today,
// isEnable: false, isEnable: false,
// onTap: () async { onTap: () async {
// if ((getabsenceDffStructureList![index].eSERVICESDV?.pVALUECOLUMNNAME != null)) { if ((getabsenceDffStructureList![index].eSERVICESDV?.pVALUECOLUMNNAME != null)) {
// if (getabsenceDffStructureList![index].isDefaultTypeIsCDPS) { if (getabsenceDffStructureList![index].isDefaultTypeIsCDPS) {
// selectedDate = DateFormat("yyyy/MM/dd").parse(getabsenceDffStructureList![index].eSERVICESDV!.pVALUECOLUMNNAME!.replaceAll('/"', '').replaceAll(" 00:00:00", "")); selectedDate = DateFormat("yyyy/MM/dd").parse(getabsenceDffStructureList![index].eSERVICESDV!.pVALUECOLUMNNAME!.replaceAll('/"', '').replaceAll(" 00:00:00", ""));
// } else { } else {
// selectedDate = DateTime.parse(getabsenceDffStructureList![index].eSERVICESDV!.pVALUECOLUMNNAME!); selectedDate = DateTime.parse(getabsenceDffStructureList![index].eSERVICESDV!.pVALUECOLUMNNAME!);
// } }
// } }
// DateTime date = await _selectDate(context); DateTime date = await _selectDate(context);
// String dateString = date.toString().split(' ').first; String dateString = date.toString().split(' ').first;
// // DateTime date1 = DateTime(date.year, date.month, date.day); // DateTime date1 = DateTime(date.year, date.month, date.day);
// // getabsenceDffStructureList![index].fieldAnswer = date.toString(); // getabsenceDffStructureList![index].fieldAnswer = date.toString();
// ESERVICESDV eservicesdv; ESERVICESDV eservicesdv;
// if (getabsenceDffStructureList![index].isDefaultTypeIsCDPS) { if (getabsenceDffStructureList![index].isDefaultTypeIsCDPS) {
// eservicesdv = ESERVICESDV( eservicesdv = ESERVICESDV(
// pIDCOLUMNNAME: formatDate(dateString), pIDCOLUMNNAME: Utils.formatDate(dateString),
// pRETURNMSG: "null", pRETURNMSG: "null",
// pRETURNSTATUS: getabsenceDffStructureList![index].dEFAULTVALUE, pRETURNSTATUS: getabsenceDffStructureList![index].dEFAULTVALUE,
// pVALUECOLUMNNAME: getabsenceDffStructureList![index].isDefaultTypeIsCDPS ? reverseFormatStandardDate(formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date)); pVALUECOLUMNNAME:
// } else { getabsenceDffStructureList![index].isDefaultTypeIsCDPS ? Utils.reverseFormatStandardDate(Utils.formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date));
// eservicesdv = ESERVICESDV( } else {
// pIDCOLUMNNAME: dateString, eservicesdv = ESERVICESDV(
// pRETURNMSG: "null", pIDCOLUMNNAME: dateString,
// pRETURNSTATUS: getabsenceDffStructureList![index].dEFAULTVALUE, pRETURNMSG: "null",
// pVALUECOLUMNNAME: getabsenceDffStructureList![index].isDefaultTypeIsCDPS ? reverseFormatStandardDate(formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date)); pRETURNSTATUS: getabsenceDffStructureList![index].dEFAULTVALUE,
// } pVALUECOLUMNNAME:
// getabsenceDffStructureList![index].eSERVICESDV = eservicesdv; getabsenceDffStructureList![index].isDefaultTypeIsCDPS ? Utils.reverseFormatStandardDate(Utils.formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date));
// setState(() {}); }
// if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) { getabsenceDffStructureList![index].eSERVICESDV = eservicesdv;
// await calGetValueSetValues(model); setState(() {});
// } // if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) {
// if (model.cHILDSEGMENTSDVSplited?.isNotEmpty ?? false) { // await calGetValueSetValues(model);
// await getDefaultValues(model); // }
// } // if (model.cHILDSEGMENTSDVSplited?.isNotEmpty ?? false) {
// }, // await getDefaultValues(model);
// ).paddingOnly(bottom: 12); // }
// } else if (model.fORMATTYPE == "Y") { },
// String displayText = model.eSERVICESDV?.pIDCOLUMNNAME ?? (getabsenceDffStructureList![index].fieldAnswer ?? ""); ).paddingOnly(bottom: 12);
// if (getabsenceDffStructureList![index].isDefaultTypeIsCDPS) { } else if (model.fORMATTYPE == "Y") {
// displayText = reverseFormatDate(displayText); String displayText = model.eSERVICESDV?.pIDCOLUMNNAME ?? "";
// // if (displayText.contains(" 00:00:00")) { if (getabsenceDffStructureList![index].isDefaultTypeIsCDPS) {
// // displayText = displayText.replaceAll(" 00:00:00", ""); displayText = Utils.reverseFormatDate(displayText);
// // } // if (displayText.contains(" 00:00:00")) {
// // if (!displayText.contains("-")) { // displayText = displayText.replaceAll(" 00:00:00", "");
// // displayText = DateFormat('yyyy-MM-dd').format(DateFormat("yyyy/MM/dd").parse(displayText)); // }
// // } // if (!displayText.contains("-")) {
// } // displayText = DateFormat('yyyy-MM-dd').format(DateFormat("yyyy/MM/dd").parse(displayText));
// return DynamicTextFieldWidget( // }
// (model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""), }
// displayText, return DynamicTextFieldWidget(
// suffixIconData: Icons.calendar_today, (model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
// isEnable: false, displayText,
// onTap: () async { suffixIconData: Icons.calendar_today,
// if ((getabsenceDffStructureList![index].eSERVICESDV?.pVALUECOLUMNNAME != null)) { isEnable: false,
// if (getabsenceDffStructureList![index].isDefaultTypeIsCDPS) { onTap: () async {
// String tempDate = getabsenceDffStructureList![index].eSERVICESDV!.pVALUECOLUMNNAME!; if ((getabsenceDffStructureList![index].eSERVICESDV?.pVALUECOLUMNNAME != null)) {
// if (tempDate.contains("00:00:00")) { if (getabsenceDffStructureList![index].isDefaultTypeIsCDPS) {
// tempDate = tempDate.replaceAll("00:00:00", '').trim(); String tempDate = getabsenceDffStructureList![index].eSERVICESDV!.pVALUECOLUMNNAME!;
// } if (tempDate.contains("00:00:00")) {
// if (tempDate.contains("/")) { tempDate = tempDate.replaceAll("00:00:00", '').trim();
// selectedDate = DateFormat("yyyy/MM/dd").parse(tempDate); }
// } else { if (tempDate.contains("/")) {
// selectedDate = DateFormat("yyyy-MM-dd").parse(tempDate); selectedDate = DateFormat("yyyy/MM/dd").parse(tempDate);
// } } else {
// } else { selectedDate = DateFormat("yyyy-MM-dd").parse(tempDate);
// selectedDate = DateTime.parse(getabsenceDffStructureList![index].eSERVICESDV!.pVALUECOLUMNNAME!); }
// } } else {
// } selectedDate = DateTime.parse(getabsenceDffStructureList![index].eSERVICESDV!.pVALUECOLUMNNAME!);
// DateTime date = await _selectDate(context); }
// String dateString = date.toString().split(' ').first; }
// // getabsenceDffStructureList![index].fieldAnswer = date.toString(); DateTime date = await _selectDate(context);
// ESERVICESDV eservicesdv; String dateString = date.toString().split(' ').first;
// if (getabsenceDffStructureList![index].isDefaultTypeIsCDPS) { // getabsenceDffStructureList![index].fieldAnswer = date.toString();
// eservicesdv = ESERVICESDV( ESERVICESDV eservicesdv;
// pIDCOLUMNNAME: formatDate(dateString), if (getabsenceDffStructureList![index].isDefaultTypeIsCDPS) {
// pRETURNMSG: "null", eservicesdv = ESERVICESDV(
// pRETURNSTATUS: getabsenceDffStructureList![index].dEFAULTVALUE, pIDCOLUMNNAME: Utils.formatDate(dateString),
// pVALUECOLUMNNAME: getabsenceDffStructureList![index].isDefaultTypeIsCDPS ? reverseFormatStandardDate(formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date)); pRETURNMSG: "null",
// } else { pRETURNSTATUS: getabsenceDffStructureList![index].dEFAULTVALUE,
// eservicesdv = ESERVICESDV( pVALUECOLUMNNAME:
// pIDCOLUMNNAME: dateString, getabsenceDffStructureList![index].isDefaultTypeIsCDPS ? Utils.reverseFormatStandardDate(Utils.formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date));
// pRETURNMSG: "null", } else {
// pRETURNSTATUS: getabsenceDffStructureList![index].dEFAULTVALUE, eservicesdv = ESERVICESDV(
// pVALUECOLUMNNAME: getabsenceDffStructureList![index].isDefaultTypeIsCDPS ? reverseFormatStandardDate(formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date)); pIDCOLUMNNAME: dateString,
// } pRETURNMSG: "null",
// pRETURNSTATUS: getabsenceDffStructureList![index].dEFAULTVALUE,
// getabsenceDffStructureList![index].eSERVICESDV = eservicesdv; pVALUECOLUMNNAME:
// setState(() {}); getabsenceDffStructureList![index].isDefaultTypeIsCDPS ? Utils.reverseFormatStandardDate(Utils.formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date));
// if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) { }
// await calGetValueSetValues(model);
// } getabsenceDffStructureList![index].eSERVICESDV = eservicesdv;
// if (model.cHILDSEGMENTSDVSplited?.isNotEmpty ?? false) { setState(() {});
// await getDefaultValues(model); // if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) {
// } // await calGetValueSetValues(model);
// }, // }
// ).paddingOnly(bottom: 12); // if (model.cHILDSEGMENTSDVSplited?.isNotEmpty ?? false) {
// } // await getDefaultValues(model);
// } else { // }
// return PopupMenuButton( },
// child: DynamicTextFieldWidget( ).paddingOnly(bottom: 12);
// (model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""), }
// model.eSERVICESDV?.pVALUECOLUMNNAME ?? "", } else {
// isEnable: false, return PopupMenuButton(
// isPopup: true, child: DynamicTextFieldWidget(
// isInputTypeNum: true, (model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
// isReadOnly: model.rEADONLY == "Y", model.eSERVICESDV?.pVALUECOLUMNNAME ?? "",
// ).paddingOnly(bottom: 12), isEnable: false,
// itemBuilder: (_) => <PopupMenuItem<int>>[ isPopup: true,
// if (model.rEADONLY != "Y") isInputTypeNum: true,
// for (int i = 0; i < model.eSERVICESVS!.length; i++) PopupMenuItem<int>(child: Text(model.eSERVICESVS![i].vALUECOLUMNNAME!), value: i), isReadOnly: model.rEADONLY == "Y",
// ], ).paddingOnly(bottom: 12),
// onSelected: (int popipIndex) async { itemBuilder: (_) => <PopupMenuItem<int>>[
// ESERVICESDV eservicesdv = ESERVICESDV( if (model.rEADONLY != "Y")
// pIDCOLUMNNAME: model.eSERVICESVS![popipIndex].iDCOLUMNNAME, for (int i = 0; i < model.eSERVICESVS!.length; i++) PopupMenuItem<int>(child: Text(model.eSERVICESVS![i].vALUECOLUMNNAME!), value: i),
// pRETURNMSG: "null", ],
// pRETURNSTATUS: "null", //getabsenceDffStructureList![popipIndex].dEFAULTVALUE, onSelected: (int popipIndex) async {
// pVALUECOLUMNNAME: model.eSERVICESVS![popipIndex].vALUECOLUMNNAME); ESERVICESDV eservicesdv = ESERVICESDV(
// getabsenceDffStructureList![index].eSERVICESDV = eservicesdv; pIDCOLUMNNAME: model.eSERVICESVS![popipIndex].iDCOLUMNNAME,
// setState(() {}); pRETURNMSG: "null",
// if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) { pRETURNSTATUS: "null", //getabsenceDffStructureList![popipIndex].dEFAULTVALUE,
// await calGetValueSetValues(model); pVALUECOLUMNNAME: model.eSERVICESVS![popipIndex].vALUECOLUMNNAME);
// } getabsenceDffStructureList![index].eSERVICESDV = eservicesdv;
// if (model.cHILDSEGMENTSDVSplited?.isNotEmpty ?? false) { setState(() {});
// await getDefaultValues(model); // if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) {
// } // await calGetValueSetValues(model);
// }); // }
// } // if (model.cHILDSEGMENTSDVSplited?.isNotEmpty ?? false) {
// } else { // await getDefaultValues(model);
// return const SizedBox(); // }
// } });
// if (model.fORMATTYPE == "N") { }
// if (model.eSERVICESVS?.isNotEmpty ?? false) { } else {
// return PopupMenuButton( return const SizedBox();
// child: DynamicTextFieldWidget( }
// (model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""), if (model.fORMATTYPE == "N") {
// model.eSERVICESDV?.pVALUECOLUMNNAME ?? "", if (model.eSERVICESVS?.isNotEmpty ?? false) {
// isEnable: false, return PopupMenuButton(
// isPopup: true, child: DynamicTextFieldWidget(
// isInputTypeNum: true, (model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
// isReadOnly: model.rEADONLY == "Y", model.eSERVICESDV?.pVALUECOLUMNNAME ?? "",
// ).paddingOnly(bottom: 12), isEnable: false,
// itemBuilder: (_) => <PopupMenuItem<int>>[ isPopup: true,
// if (model.rEADONLY != "Y") isInputTypeNum: true,
// for (int i = 0; i < model.eSERVICESVS!.length; i++) PopupMenuItem<int>(value: i, child: Text(model.eSERVICESVS![i].vALUECOLUMNNAME!)), isReadOnly: model.rEADONLY == "Y",
// ], ).paddingOnly(bottom: 12),
// onSelected: (int popipIndex) async { itemBuilder: (_) => <PopupMenuItem<int>>[
// ESERVICESDV eservicesdv = if (model.rEADONLY != "Y")
// ESERVICESDV(pIDCOLUMNNAME: model.eSERVICESVS![popipIndex].iDCOLUMNNAME, pRETURNMSG: "null", pRETURNSTATUS: "null", pVALUECOLUMNNAME: model.eSERVICESVS![popipIndex].vALUECOLUMNNAME); for (int i = 0; i < model.eSERVICESVS!.length; i++) PopupMenuItem<int>(value: i, child: Text(model.eSERVICESVS![i].vALUECOLUMNNAME!)),
// getabsenceDffStructureList![index].eSERVICESDV = eservicesdv; ],
// setState(() {}); onSelected: (int popipIndex) async {
// if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) { ESERVICESDV eservicesdv =
// await calGetValueSetValues(model); ESERVICESDV(pIDCOLUMNNAME: model.eSERVICESVS![popipIndex].iDCOLUMNNAME, pRETURNMSG: "null", pRETURNSTATUS: "null", pVALUECOLUMNNAME: model.eSERVICESVS![popipIndex].vALUECOLUMNNAME);
// } getabsenceDffStructureList![index].eSERVICESDV = eservicesdv;
// if (model.cHILDSEGMENTSDVSplited?.isNotEmpty ?? false) { setState(() {});
// await getDefaultValues(model); // if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) {
// } // await calGetValueSetValues(model);
// }); // }
// } // if (model.cHILDSEGMENTSDVSplited?.isNotEmpty ?? false) {
// // await getDefaultValues(model);
// return DynamicTextFieldWidget( // }
// (model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""), });
// model.eSERVICESDV?.pIDCOLUMNNAME ?? "", }
// isReadOnly: model.rEADONLY == "Y",
// onChange: (text) { return DynamicTextFieldWidget(
// model.fieldAnswer = text; (model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
// }, model.eSERVICESDV?.pIDCOLUMNNAME ?? "",
// ).paddingOnly(bottom: 12); isReadOnly: model.rEADONLY == "Y",
// } else if (model.fORMATTYPE == "X" || model.fORMATTYPE == "Y") { onChange: (text) {
// String displayText = model.eSERVICESDV?.pIDCOLUMNNAME ?? (getabsenceDffStructureList![index].fieldAnswer ?? ""); //model.fieldAnswer = text;
// if (getabsenceDffStructureList![index].isDefaultTypeIsCDPS) { },
// if (displayText.contains(" 00:00:00")) { ).paddingOnly(bottom: 12);
// displayText = displayText.replaceAll(" 00:00:00", ""); } else if (model.fORMATTYPE == "X" || model.fORMATTYPE == "Y") {
// } String displayText = model.eSERVICESDV?.pIDCOLUMNNAME ?? "";
// if (!displayText.contains("-")) { if (getabsenceDffStructureList![index].isDefaultTypeIsCDPS) {
// displayText = DateFormat('yyyy-MM-dd').format(DateFormat("yyyy/MM/dd").parse(displayText)); if (displayText.contains(" 00:00:00")) {
// } displayText = displayText.replaceAll(" 00:00:00", "");
// } }
// return DynamicTextFieldWidget( if (!displayText.contains("-")) {
// (model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""), displayText = DateFormat('yyyy-MM-dd').format(DateFormat("yyyy/MM/dd").parse(displayText));
// displayText, }
// suffixIconData: Icons.calendar_today, }
// isEnable: false, return DynamicTextFieldWidget(
// onTap: () async { (model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
// if ((getabsenceDffStructureList![index].eSERVICESDV?.pVALUECOLUMNNAME != null)) { displayText,
// if (getabsenceDffStructureList![index].isDefaultTypeIsCDPS) { suffixIconData: Icons.calendar_today,
// selectedDate = DateFormat("yyyy/MM/dd").parse(getabsenceDffStructureList![index].eSERVICESDV!.pVALUECOLUMNNAME!.replaceAll('/"', '').replaceAll(" 00:00:00", "")); isEnable: false,
// } else { onTap: () async {
// selectedDate = DateTime.parse(getabsenceDffStructureList![index].eSERVICESDV!.pVALUECOLUMNNAME!); if ((getabsenceDffStructureList![index].eSERVICESDV?.pVALUECOLUMNNAME != null)) {
// } if (getabsenceDffStructureList![index].isDefaultTypeIsCDPS) {
// } selectedDate = DateFormat("yyyy/MM/dd").parse(getabsenceDffStructureList![index].eSERVICESDV!.pVALUECOLUMNNAME!.replaceAll('/"', '').replaceAll(" 00:00:00", ""));
// DateTime date = await _selectDate(context); } else {
// String dateString = date.toString().split(' ').first; selectedDate = DateTime.parse(getabsenceDffStructureList![index].eSERVICESDV!.pVALUECOLUMNNAME!);
// getabsenceDffStructureList![index].fieldAnswer = date.toString(); }
// ESERVICESDV eservicesdv = ESERVICESDV( }
// pIDCOLUMNNAME: dateString, DateTime date = await _selectDate(context);
// pRETURNMSG: "null", String dateString = date.toString().split(' ').first;
// pRETURNSTATUS: getabsenceDffStructureList![index].dEFAULTVALUE, // getabsenceDffStructureList![index].fieldAnswer = date.toString();
// pVALUECOLUMNNAME: getabsenceDffStructureList![index].isDefaultTypeIsCDPS ? reverseFormatStandardDate(formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date)); ESERVICESDV eservicesdv = ESERVICESDV(
// getabsenceDffStructureList![index].eSERVICESDV = eservicesdv; pIDCOLUMNNAME: dateString,
// setState(() {}); pRETURNMSG: "null",
// if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) { pRETURNSTATUS: getabsenceDffStructureList![index].dEFAULTVALUE,
// await calGetValueSetValues(model); pVALUECOLUMNNAME:
// } getabsenceDffStructureList![index].isDefaultTypeIsCDPS ? Utils.reverseFormatStandardDate(Utils.formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date));
// if (model.cHILDSEGMENTSDVSplited?.isNotEmpty ?? false) { getabsenceDffStructureList![index].eSERVICESDV = eservicesdv;
// await getDefaultValues(model); setState(() {});
// } // if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) {
// }, // await calGetValueSetValues(model);
// ).paddingOnly(bottom: 12); // }
// } else if (model.fORMATTYPE == "I") { // if (model.cHILDSEGMENTSDVSplited?.isNotEmpty ?? false) {
// return DynamicTextFieldWidget( // await getDefaultValues(model);
// (model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""), // }
// model.eSERVICESDV?.pIDCOLUMNNAME ?? (getabsenceDffStructureList![index].fieldAnswer ?? ""), },
// suffixIconData: Icons.access_time_filled_rounded, ).paddingOnly(bottom: 12);
// isEnable: false, } else if (model.fORMATTYPE == "I") {
// onTap: () async { return DynamicTextFieldWidget(
// if ((getabsenceDffStructureList![index].eSERVICESDV?.pVALUECOLUMNNAME != null)) { (model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
// var timeString = getabsenceDffStructureList![index].eSERVICESDV!.pVALUECOLUMNNAME!.split(":"); model.eSERVICESDV?.pIDCOLUMNNAME ?? "",
// selectedDate = DateTime(0, 0, 0, int.parse(timeString[0]), int.parse(timeString[1])); suffixIconData: Icons.access_time_filled_rounded,
// isEnable: false,
// //DateTime.parse(getabsenceDffStructureList![index].eSERVICESDV!.pVALUECOLUMNNAME!); onTap: () async {
// } if (getabsenceDffStructureList[index].mOBILEENABLED != "Y") return;
// TimeOfDay _time = await _selectTime(context);
// DateTime tempTime = DateTime(0, 1, 1, _time.hour, _time.minute); if ((getabsenceDffStructureList![index].eSERVICESDV?.pVALUECOLUMNNAME != null)) {
// String time = DateFormat('HH:mm').format(tempTime).trim(); var timeString = getabsenceDffStructureList![index].eSERVICESDV!.pVALUECOLUMNNAME!.split(":");
// selectedDate = DateTime(0, 0, 0, int.parse(timeString[0]), int.parse(timeString[1]));
// // DateTime date1 = DateTime(date.year, date.month, date.day);
// // getabsenceDffStructureList![index].fieldAnswer = date.toString(); //DateTime.parse(getabsenceDffStructureList![index].eSERVICESDV!.pVALUECOLUMNNAME!);
// ESERVICESDV eservicesdv = ESERVICESDV(pIDCOLUMNNAME: time, pRETURNMSG: "null", pRETURNSTATUS: getabsenceDffStructureList![index].dEFAULTVALUE, pVALUECOLUMNNAME: time); }
// getabsenceDffStructureList![index].eSERVICESDV = eservicesdv; TimeOfDay _time = await _selectTime(context);
// setState(() {}); DateTime tempTime = DateTime(0, 1, 1, _time.hour, _time.minute);
// // if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) { String time = DateFormat('HH:mm').format(tempTime).trim();
// // await calGetValueSetValues(model);
// // } // DateTime date1 = DateTime(date.year, date.month, date.day);
// // if (model.cHILDSEGMENTSDVSplited?.isNotEmpty ?? false) { // getabsenceDffStructureList![index].fieldAnswer = date.toString();
// // await getDefaultValues(model); ESERVICESDV eservicesdv = ESERVICESDV(pIDCOLUMNNAME: time, pRETURNMSG: "null", pRETURNSTATUS: getabsenceDffStructureList![index].dEFAULTVALUE, pVALUECOLUMNNAME: time);
// // } getabsenceDffStructureList![index].eSERVICESDV = eservicesdv;
// }, setState(() {});
// ).paddingOnly(bottom: 12); // if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) {
// } // await calGetValueSetValues(model);
// // }
// return Column( // if (model.cHILDSEGMENTSDVSplited?.isNotEmpty ?? false) {
// crossAxisAlignment: CrossAxisAlignment.start, // await getDefaultValues(model);
// mainAxisSize: MainAxisSize.min, // }
// children: [], },
// ).objectContainerView(); ).paddingOnly(bottom: 12);
// } }
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [],
).objectContainerView();
}
Future<DateTime> _selectDate(BuildContext context, DateTime? dateInput) async { Future<DateTime> _selectDate(BuildContext context) async {
DateTime time = dateInput ?? DateTime.now(); DateTime time = selectedDate;
if (Platform.isIOS) { if (Platform.isIOS) {
await showCupertinoModalPopup( await showCupertinoModalPopup(
context: context, context: context,
@ -481,22 +519,62 @@ class _AddLeaveBalanceScreenState extends State<AddLeaveBalanceScreen> {
backgroundColor: Colors.white, backgroundColor: Colors.white,
mode: CupertinoDatePickerMode.date, mode: CupertinoDatePickerMode.date,
onDateTimeChanged: (value) { onDateTimeChanged: (value) {
if (value != dateInput) { if (value != null && value != selectedDate) {
time = value; time = value;
} }
}, },
initialDateTime: dateInput, initialDateTime: selectedDate,
), ),
), ),
); );
} else { } else {
DateTime? picked = DateTime? picked = await showDatePicker(context: context, initialDate: selectedDate, initialEntryMode: DatePickerEntryMode.calendarOnly, firstDate: DateTime(2015, 8), lastDate: DateTime(2101));
await showDatePicker(context: context, initialDate: dateInput ?? DateTime.now(), initialEntryMode: DatePickerEntryMode.calendarOnly, firstDate: DateTime(2015, 8), lastDate: DateTime(2101)); if (picked != null && picked != selectedDate) {
if (picked != null && picked != dateInput) {
time = picked; time = picked;
} }
} }
time = DateTime(time.year, time.month, time.day); time = DateTime(time.year, time.month, time.day);
return time; return time;
} }
Future<TimeOfDay> _selectTime(BuildContext context) async {
TimeOfDay time = TimeOfDay(hour: selectedDate.hour, minute: selectedDate.minute);
if (Platform.isIOS) {
await showCupertinoModalPopup(
context: context,
builder: (cxt) => Container(
height: 250,
color: Colors.white,
child: CupertinoDatePicker(
backgroundColor: Colors.white,
mode: CupertinoDatePickerMode.time,
use24hFormat: true,
onDateTimeChanged: (value) {
if (value != null && value != selectedDate) {
time = TimeOfDay(hour: value.hour, minute: value.minute);
}
},
initialDateTime: selectedDate,
),
),
);
} else {
TimeOfDay? picked = await showTimePicker(
context: context,
initialTime: time,
builder: (cxt, child) {
return MediaQuery(data: MediaQuery.of(context).copyWith(alwaysUse24HourFormat: true), child: child ?? Container());
});
if (picked != null && picked != time) {
time = picked;
}
// 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;
}
} }

@ -281,7 +281,7 @@ class _DynamicInputScreenState extends State<DynamicInputScreen> {
// idColName = DateFormat('yyyy/MM/dd HH:mm:ss').format(DateTime(date.year, date.month, date.day)); // idColName = DateFormat('yyyy/MM/dd HH:mm:ss').format(DateTime(date.year, date.month, date.day));
// } // }
idColName = formatStandardDate(idColName!); idColName = Utils.formatStandardDate(idColName!);
} }
} else { } else {
val = getEitDffStructureList![j].eSERVICESDV?.pVALUECOLUMNNAME; val = getEitDffStructureList![j].eSERVICESDV?.pVALUECOLUMNNAME;
@ -293,7 +293,7 @@ class _DynamicInputScreenState extends State<DynamicInputScreen> {
idColName = val; idColName = val;
if (getEitDffStructureList![j].fORMATTYPE == "X") { if (getEitDffStructureList![j].fORMATTYPE == "X") {
idColName = formatDateNew(idColName!); idColName = Utils.formatDateNew(idColName!);
// commenting to test // commenting to test
// DateTime date = DateFormat('yyyy-MM-dd').parse(idColName!); // DateTime date = DateFormat('yyyy-MM-dd').parse(idColName!);
// idColName = DateFormat('yyyy-MM-dd HH:mm:ss').format(date); // idColName = DateFormat('yyyy-MM-dd HH:mm:ss').format(date);
@ -406,7 +406,8 @@ class _DynamicInputScreenState extends State<DynamicInputScreen> {
padding: const EdgeInsets.all(21), padding: const EdgeInsets.all(21),
itemBuilder: (cxt, int parentIndex) => parseDynamicFormatType(getEitDffStructureList![parentIndex], parentIndex), itemBuilder: (cxt, int parentIndex) => parseDynamicFormatType(getEitDffStructureList![parentIndex], parentIndex),
separatorBuilder: (cxt, index) => 0.height, separatorBuilder: (cxt, index) => 0.height,
itemCount: getEitDffStructureList!.length))) itemCount: getEitDffStructureList!.length,
)))
.expanded, .expanded,
// 12.height, // 12.height,
DefaultButton( DefaultButton(
@ -481,16 +482,18 @@ class _DynamicInputScreenState extends State<DynamicInputScreen> {
ESERVICESDV eservicesdv; ESERVICESDV eservicesdv;
if (getEitDffStructureList![index].isDefaultTypeIsCDPS) { if (getEitDffStructureList![index].isDefaultTypeIsCDPS) {
eservicesdv = ESERVICESDV( eservicesdv = ESERVICESDV(
pIDCOLUMNNAME: formatDate(dateString), pIDCOLUMNNAME: Utils.formatDate(dateString),
pRETURNMSG: "null", pRETURNMSG: "null",
pRETURNSTATUS: getEitDffStructureList![index].dEFAULTVALUE, pRETURNSTATUS: getEitDffStructureList![index].dEFAULTVALUE,
pVALUECOLUMNNAME: getEitDffStructureList![index].isDefaultTypeIsCDPS ? reverseFormatStandardDate(formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date)); pVALUECOLUMNNAME:
getEitDffStructureList![index].isDefaultTypeIsCDPS ? Utils.reverseFormatStandardDate(Utils.formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date));
} else { } else {
eservicesdv = ESERVICESDV( eservicesdv = ESERVICESDV(
pIDCOLUMNNAME: dateString, pIDCOLUMNNAME: dateString,
pRETURNMSG: "null", pRETURNMSG: "null",
pRETURNSTATUS: getEitDffStructureList![index].dEFAULTVALUE, pRETURNSTATUS: getEitDffStructureList![index].dEFAULTVALUE,
pVALUECOLUMNNAME: getEitDffStructureList![index].isDefaultTypeIsCDPS ? reverseFormatStandardDate(formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date)); pVALUECOLUMNNAME:
getEitDffStructureList![index].isDefaultTypeIsCDPS ? Utils.reverseFormatStandardDate(Utils.formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date));
} }
getEitDffStructureList![index].eSERVICESDV = eservicesdv; getEitDffStructureList![index].eSERVICESDV = eservicesdv;
setState(() {}); setState(() {});
@ -505,7 +508,7 @@ class _DynamicInputScreenState extends State<DynamicInputScreen> {
} else if (model.fORMATTYPE == "Y") { } else if (model.fORMATTYPE == "Y") {
String displayText = model.eSERVICESDV?.pIDCOLUMNNAME ?? (getEitDffStructureList![index].fieldAnswer ?? ""); String displayText = model.eSERVICESDV?.pIDCOLUMNNAME ?? (getEitDffStructureList![index].fieldAnswer ?? "");
if (getEitDffStructureList![index].isDefaultTypeIsCDPS) { if (getEitDffStructureList![index].isDefaultTypeIsCDPS) {
displayText = reverseFormatDate(displayText); displayText = Utils.reverseFormatDate(displayText);
// if (displayText.contains(" 00:00:00")) { // if (displayText.contains(" 00:00:00")) {
// displayText = displayText.replaceAll(" 00:00:00", ""); // displayText = displayText.replaceAll(" 00:00:00", "");
// } // }
@ -540,16 +543,18 @@ class _DynamicInputScreenState extends State<DynamicInputScreen> {
ESERVICESDV eservicesdv; ESERVICESDV eservicesdv;
if (getEitDffStructureList![index].isDefaultTypeIsCDPS) { if (getEitDffStructureList![index].isDefaultTypeIsCDPS) {
eservicesdv = ESERVICESDV( eservicesdv = ESERVICESDV(
pIDCOLUMNNAME: formatDate(dateString), pIDCOLUMNNAME: Utils.formatDate(dateString),
pRETURNMSG: "null", pRETURNMSG: "null",
pRETURNSTATUS: getEitDffStructureList![index].dEFAULTVALUE, pRETURNSTATUS: getEitDffStructureList![index].dEFAULTVALUE,
pVALUECOLUMNNAME: getEitDffStructureList![index].isDefaultTypeIsCDPS ? reverseFormatStandardDate(formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date)); pVALUECOLUMNNAME:
getEitDffStructureList![index].isDefaultTypeIsCDPS ? Utils.reverseFormatStandardDate(Utils.formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date));
} else { } else {
eservicesdv = ESERVICESDV( eservicesdv = ESERVICESDV(
pIDCOLUMNNAME: dateString, pIDCOLUMNNAME: dateString,
pRETURNMSG: "null", pRETURNMSG: "null",
pRETURNSTATUS: getEitDffStructureList![index].dEFAULTVALUE, pRETURNSTATUS: getEitDffStructureList![index].dEFAULTVALUE,
pVALUECOLUMNNAME: getEitDffStructureList![index].isDefaultTypeIsCDPS ? reverseFormatStandardDate(formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date)); pVALUECOLUMNNAME:
getEitDffStructureList![index].isDefaultTypeIsCDPS ? Utils.reverseFormatStandardDate(Utils.formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date));
} }
getEitDffStructureList![index].eSERVICESDV = eservicesdv; getEitDffStructureList![index].eSERVICESDV = eservicesdv;
@ -663,7 +668,7 @@ class _DynamicInputScreenState extends State<DynamicInputScreen> {
pIDCOLUMNNAME: dateString, pIDCOLUMNNAME: dateString,
pRETURNMSG: "null", pRETURNMSG: "null",
pRETURNSTATUS: getEitDffStructureList![index].dEFAULTVALUE, pRETURNSTATUS: getEitDffStructureList![index].dEFAULTVALUE,
pVALUECOLUMNNAME: getEitDffStructureList![index].isDefaultTypeIsCDPS ? reverseFormatStandardDate(formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date)); pVALUECOLUMNNAME: getEitDffStructureList![index].isDefaultTypeIsCDPS ? Utils.reverseFormatStandardDate(Utils.formatDate(dateString)) : DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date));
getEitDffStructureList![index].eSERVICESDV = eservicesdv; getEitDffStructureList![index].eSERVICESDV = eservicesdv;
setState(() {}); setState(() {});
if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) { if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) {
@ -736,8 +741,7 @@ class _DynamicInputScreenState extends State<DynamicInputScreen> {
), ),
); );
} else { } else {
DateTime? picked = DateTime? picked = await showDatePicker(context: context, initialDate: selectedDate, initialEntryMode: DatePickerEntryMode.calendarOnly, firstDate: DateTime(2015, 8), lastDate: DateTime(2101));
await showDatePicker(context: context, initialDate: selectedDate, initialEntryMode: DatePickerEntryMode.calendarOnly, firstDate: DateTime(2015, 8), lastDate: DateTime(2101));
if (picked != null && picked != selectedDate) { if (picked != null && picked != selectedDate) {
time = picked; time = picked;
} }
@ -786,59 +790,4 @@ class _DynamicInputScreenState extends State<DynamicInputScreen> {
} }
return time; return time;
} }
String reverseFormatDate(String date) {
String formattedDate;
if (date.isNotEmpty) {
formattedDate = date.replaceAll('/', '-');
formattedDate = formattedDate.replaceAll(' 00:00:00', '');
} else {
formattedDate = date;
}
return formattedDate;
}
String formatStandardDate(String date) {
String formattedDate;
if (date.isNotEmpty) {
formattedDate = date.replaceAll('-', '/');
} else {
formattedDate = date;
}
return formattedDate;
}
String reverseFormatStandardDate(String date) {
String formattedDate;
if (date.isNotEmpty) {
formattedDate = date.replaceAll('/', '-');
} else {
formattedDate = date;
}
return formattedDate;
}
String formatDate(String date) {
String formattedDate;
if (date.isNotEmpty) {
date = date.substring(0, 10);
formattedDate = date.replaceAll('-', '/');
formattedDate = formattedDate + ' 00:00:00';
} else {
formattedDate = date;
}
return formattedDate;
}
String formatDateNew(String date) {
String formattedDate;
if (date.isNotEmpty) {
formattedDate = date.split('T')[0];
formattedDate = formattedDate + ' 00:00:00';
} else {
formattedDate = date;
}
return formattedDate;
}
} }

Loading…
Cancel
Save