address phone numbers
parent
9b213dc9ab
commit
e6e150b9e3
@ -0,0 +1,189 @@
|
|||||||
|
import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/get_employee_address_model.dart';
|
||||||
|
|
||||||
|
class GetAddressDffStructureList {
|
||||||
|
String? aLPHANUMERICALLOWEDFLAG;
|
||||||
|
String? aPPLICATIONCOLUMNNAME;
|
||||||
|
String? cHILDSEGMENTSVS;
|
||||||
|
Null? cHILDSEGMENTSVSSplited;
|
||||||
|
String? dEFAULTTYPE;
|
||||||
|
String? dEFAULTVALUE;
|
||||||
|
String? dESCFLEXCONTEXTCODE;
|
||||||
|
String? dESCFLEXCONTEXTNAME;
|
||||||
|
String? dESCFLEXNAME;
|
||||||
|
String? dISPLAYFLAG;
|
||||||
|
String? eNABLEDFLAG;
|
||||||
|
ESERVICESDV? eSERVICESDV;
|
||||||
|
List<ESERVICESVS>? eSERVICESVS;
|
||||||
|
String? fLEXVALUESETNAME;
|
||||||
|
String? fORMATTYPE;
|
||||||
|
String? fORMATTYPEDSP;
|
||||||
|
bool? isEmptyOption;
|
||||||
|
String? lONGLISTFLAG;
|
||||||
|
int? mAXIMUMSIZE;
|
||||||
|
String? mAXIMUMVALUE;
|
||||||
|
String? mINIMUMVALUE;
|
||||||
|
String? mOBILEENABLED;
|
||||||
|
String? nUMBERPRECISION;
|
||||||
|
String? nUMERICMODEENABLEDFLAG;
|
||||||
|
String? pARENTSEGMENTSDV;
|
||||||
|
List<Null>? pARENTSEGMENTSDVSplited;
|
||||||
|
String? pARENTSEGMENTSVS;
|
||||||
|
List<Null>? pARENTSEGMENTSVSSplitedVS;
|
||||||
|
String? rEADONLY;
|
||||||
|
String? rEQUIREDFLAG;
|
||||||
|
String? sEGMENTNAME;
|
||||||
|
String? sEGMENTPROMPT;
|
||||||
|
int? sEGMENTSEQNUM;
|
||||||
|
String? uPPERCASEONLYFLAG;
|
||||||
|
String? uSEDFLAG;
|
||||||
|
String? vALIDATIONTYPE;
|
||||||
|
String? vALIDATIONTYPEDSP;
|
||||||
|
GetEmployeeAddressList? getEmployeeAddressList;
|
||||||
|
GetAddressDffStructureList(
|
||||||
|
{this.aLPHANUMERICALLOWEDFLAG,
|
||||||
|
this.aPPLICATIONCOLUMNNAME,
|
||||||
|
this.cHILDSEGMENTSVS,
|
||||||
|
this.cHILDSEGMENTSVSSplited,
|
||||||
|
this.dEFAULTTYPE,
|
||||||
|
this.dEFAULTVALUE,
|
||||||
|
this.dESCFLEXCONTEXTCODE,
|
||||||
|
this.dESCFLEXCONTEXTNAME,
|
||||||
|
this.dESCFLEXNAME,
|
||||||
|
this.dISPLAYFLAG,
|
||||||
|
this.eNABLEDFLAG,
|
||||||
|
this.eSERVICESDV,
|
||||||
|
this.eSERVICESVS,
|
||||||
|
this.fLEXVALUESETNAME,
|
||||||
|
this.fORMATTYPE,
|
||||||
|
this.fORMATTYPEDSP,
|
||||||
|
this.isEmptyOption,
|
||||||
|
this.lONGLISTFLAG,
|
||||||
|
this.mAXIMUMSIZE,
|
||||||
|
this.mAXIMUMVALUE,
|
||||||
|
this.mINIMUMVALUE,
|
||||||
|
this.mOBILEENABLED,
|
||||||
|
this.nUMBERPRECISION,
|
||||||
|
this.nUMERICMODEENABLEDFLAG,
|
||||||
|
this.pARENTSEGMENTSDV,
|
||||||
|
this.pARENTSEGMENTSDVSplited,
|
||||||
|
this.pARENTSEGMENTSVS,
|
||||||
|
this.pARENTSEGMENTSVSSplitedVS,
|
||||||
|
this.rEADONLY,
|
||||||
|
this.rEQUIREDFLAG,
|
||||||
|
this.sEGMENTNAME,
|
||||||
|
this.sEGMENTPROMPT,
|
||||||
|
this.sEGMENTSEQNUM,
|
||||||
|
this.uPPERCASEONLYFLAG,
|
||||||
|
this.uSEDFLAG,
|
||||||
|
this.vALIDATIONTYPE,
|
||||||
|
this.vALIDATIONTYPEDSP,
|
||||||
|
this.getEmployeeAddressList});
|
||||||
|
|
||||||
|
GetAddressDffStructureList.fromJson(Map<String, dynamic> json) {
|
||||||
|
aLPHANUMERICALLOWEDFLAG = json['ALPHANUMERIC_ALLOWED_FLAG'];
|
||||||
|
aPPLICATIONCOLUMNNAME = json['APPLICATION_COLUMN_NAME'];
|
||||||
|
cHILDSEGMENTSVS = json['CHILD_SEGMENTS_VS'];
|
||||||
|
cHILDSEGMENTSVSSplited = json['CHILD_SEGMENTS_VS_Splited'];
|
||||||
|
dEFAULTTYPE = json['DEFAULT_TYPE'];
|
||||||
|
dEFAULTVALUE = json['DEFAULT_VALUE'];
|
||||||
|
dESCFLEXCONTEXTCODE = json['DESC_FLEX_CONTEXT_CODE'];
|
||||||
|
dESCFLEXCONTEXTNAME = json['DESC_FLEX_CONTEXT_NAME'];
|
||||||
|
dESCFLEXNAME = json['DESC_FLEX_NAME'];
|
||||||
|
dISPLAYFLAG = json['DISPLAY_FLAG'];
|
||||||
|
eNABLEDFLAG = json['ENABLED_FLAG'];
|
||||||
|
eSERVICESDV = json['E_SERVICES_DV'] != null ? new ESERVICESDV.fromJson(json['E_SERVICES_DV']) : null;
|
||||||
|
if (json['E_SERVICES_VS'] != null) {
|
||||||
|
eSERVICESVS = <ESERVICESVS>[];
|
||||||
|
json['E_SERVICES_VS'].forEach((v) {
|
||||||
|
eSERVICESVS!.add(new ESERVICESVS.fromJson(v));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
fLEXVALUESETNAME = json['FLEX_VALUE_SET_NAME'];
|
||||||
|
fORMATTYPE = json['FORMAT_TYPE'];
|
||||||
|
fORMATTYPEDSP = json['FORMAT_TYPE_DSP'];
|
||||||
|
isEmptyOption = json['IsEmptyOption'];
|
||||||
|
lONGLISTFLAG = json['LONGLIST_FLAG'];
|
||||||
|
mAXIMUMSIZE = json['MAXIMUM_SIZE'];
|
||||||
|
mAXIMUMVALUE = json['MAXIMUM_VALUE'];
|
||||||
|
mINIMUMVALUE = json['MINIMUM_VALUE'];
|
||||||
|
mOBILEENABLED = json['MOBILE_ENABLED'];
|
||||||
|
nUMBERPRECISION = json['NUMBER_PRECISION'];
|
||||||
|
nUMERICMODEENABLEDFLAG = json['NUMERIC_MODE_ENABLED_FLAG'];
|
||||||
|
pARENTSEGMENTSDV = json['PARENT_SEGMENTS_DV'];
|
||||||
|
if (json['PARENT_SEGMENTS_DV_Splited'] != null) {
|
||||||
|
pARENTSEGMENTSDVSplited = <Null>[];
|
||||||
|
json['PARENT_SEGMENTS_DV_Splited'].forEach((v) {
|
||||||
|
pARENTSEGMENTSDVSplited!.add(v);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
pARENTSEGMENTSVS = json['PARENT_SEGMENTS_VS'];
|
||||||
|
if (json['PARENT_SEGMENTS_VS_SplitedVS'] != null) {
|
||||||
|
pARENTSEGMENTSVSSplitedVS = <Null>[];
|
||||||
|
json['PARENT_SEGMENTS_VS_SplitedVS'].forEach((v) {
|
||||||
|
pARENTSEGMENTSVSSplitedVS!.add(v);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
rEADONLY = json['READ_ONLY'];
|
||||||
|
rEQUIREDFLAG = json['REQUIRED_FLAG'];
|
||||||
|
sEGMENTNAME = json['SEGMENT_NAME'];
|
||||||
|
sEGMENTPROMPT = json['SEGMENT_PROMPT'];
|
||||||
|
sEGMENTSEQNUM = json['SEGMENT_SEQ_NUM'];
|
||||||
|
uPPERCASEONLYFLAG = json['UPPERCASE_ONLY_FLAG'];
|
||||||
|
uSEDFLAG = json['USED_FLAG'];
|
||||||
|
vALIDATIONTYPE = json['VALIDATION_TYPE'];
|
||||||
|
vALIDATIONTYPEDSP = json['VALIDATION_TYPE_DSP'];
|
||||||
|
getEmployeeAddressList = json['GetEmployeeAddressList'] != null ? new GetEmployeeAddressList.fromJson(json['GetEmployeeAddressList']) : GetEmployeeAddressList();
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['ALPHANUMERIC_ALLOWED_FLAG'] = this.aLPHANUMERICALLOWEDFLAG;
|
||||||
|
data['APPLICATION_COLUMN_NAME'] = this.aPPLICATIONCOLUMNNAME;
|
||||||
|
data['CHILD_SEGMENTS_VS'] = this.cHILDSEGMENTSVS;
|
||||||
|
data['CHILD_SEGMENTS_VS_Splited'] = this.cHILDSEGMENTSVSSplited;
|
||||||
|
data['DEFAULT_TYPE'] = this.dEFAULTTYPE;
|
||||||
|
data['DEFAULT_VALUE'] = this.dEFAULTVALUE;
|
||||||
|
data['DESC_FLEX_CONTEXT_CODE'] = this.dESCFLEXCONTEXTCODE;
|
||||||
|
data['DESC_FLEX_CONTEXT_NAME'] = this.dESCFLEXCONTEXTNAME;
|
||||||
|
data['DESC_FLEX_NAME'] = this.dESCFLEXNAME;
|
||||||
|
data['DISPLAY_FLAG'] = this.dISPLAYFLAG;
|
||||||
|
data['ENABLED_FLAG'] = this.eNABLEDFLAG;
|
||||||
|
if (this.eSERVICESDV != null) {
|
||||||
|
data['E_SERVICES_DV'] = this.eSERVICESDV!.toJson();
|
||||||
|
}
|
||||||
|
if (this.eSERVICESVS != null) {
|
||||||
|
data['E_SERVICES_VS'] = this.eSERVICESVS!.map((v) => v.toJson()).toList();
|
||||||
|
}
|
||||||
|
data['FLEX_VALUE_SET_NAME'] = this.fLEXVALUESETNAME;
|
||||||
|
data['FORMAT_TYPE'] = this.fORMATTYPE;
|
||||||
|
data['FORMAT_TYPE_DSP'] = this.fORMATTYPEDSP;
|
||||||
|
data['IsEmptyOption'] = this.isEmptyOption;
|
||||||
|
data['LONGLIST_FLAG'] = this.lONGLISTFLAG;
|
||||||
|
data['MAXIMUM_SIZE'] = this.mAXIMUMSIZE;
|
||||||
|
data['MAXIMUM_VALUE'] = this.mAXIMUMVALUE;
|
||||||
|
data['MINIMUM_VALUE'] = this.mINIMUMVALUE;
|
||||||
|
data['MOBILE_ENABLED'] = this.mOBILEENABLED;
|
||||||
|
data['NUMBER_PRECISION'] = this.nUMBERPRECISION;
|
||||||
|
data['NUMERIC_MODE_ENABLED_FLAG'] = this.nUMERICMODEENABLEDFLAG;
|
||||||
|
data['PARENT_SEGMENTS_DV'] = this.pARENTSEGMENTSDV;
|
||||||
|
if (this.pARENTSEGMENTSDVSplited != null) {
|
||||||
|
data['PARENT_SEGMENTS_DV_Splited'] = this.pARENTSEGMENTSDVSplited!.map((v) => v).toList();
|
||||||
|
}
|
||||||
|
data['PARENT_SEGMENTS_VS'] = this.pARENTSEGMENTSVS;
|
||||||
|
if (this.pARENTSEGMENTSVSSplitedVS != null) {
|
||||||
|
data['PARENT_SEGMENTS_VS_SplitedVS'] = this.pARENTSEGMENTSVSSplitedVS!.map((v) => v).toList();
|
||||||
|
}
|
||||||
|
data['READ_ONLY'] = this.rEADONLY;
|
||||||
|
data['REQUIRED_FLAG'] = this.rEQUIREDFLAG;
|
||||||
|
data['SEGMENT_NAME'] = this.sEGMENTNAME;
|
||||||
|
data['SEGMENT_PROMPT'] = this.sEGMENTPROMPT;
|
||||||
|
data['SEGMENT_SEQ_NUM'] = this.sEGMENTSEQNUM;
|
||||||
|
data['UPPERCASE_ONLY_FLAG'] = this.uPPERCASEONLYFLAG;
|
||||||
|
data['USED_FLAG'] = this.uSEDFLAG;
|
||||||
|
data['VALIDATION_TYPE'] = this.vALIDATIONTYPE;
|
||||||
|
data['VALIDATION_TYPE_DSP'] = this.vALIDATIONTYPEDSP;
|
||||||
|
data['GetEmployeeAddressList'] != null ? this.getEmployeeAddressList!.toJson() : GetEmployeeAddressList();
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
class GetCountriesListModel {
|
||||||
|
String? cOUNTRYCODE;
|
||||||
|
String? cOUNTRYNAME;
|
||||||
|
|
||||||
|
GetCountriesListModel({this.cOUNTRYCODE, this.cOUNTRYNAME});
|
||||||
|
|
||||||
|
GetCountriesListModel.fromJson(Map<String, dynamic> json) {
|
||||||
|
cOUNTRYCODE = json['COUNTRY_CODE'];
|
||||||
|
cOUNTRYNAME = json['COUNTRY_NAME'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['COUNTRY_CODE'] = this.cOUNTRYCODE;
|
||||||
|
data['COUNTRY_NAME'] = this.cOUNTRYNAME;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
class StartAddressApprovalProcess {
|
||||||
|
String? pRETURNMSG;
|
||||||
|
String? pRETURNSTATUS;
|
||||||
|
|
||||||
|
StartAddressApprovalProcess({this.pRETURNMSG, this.pRETURNSTATUS});
|
||||||
|
|
||||||
|
StartAddressApprovalProcess.fromJson(Map<String, dynamic> json) {
|
||||||
|
pRETURNMSG = json['P_RETURN_MSG'];
|
||||||
|
pRETURNSTATUS = json['P_RETURN_STATUS'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['P_RETURN_MSG'] = this.pRETURNMSG;
|
||||||
|
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
class SubmitAddressTransaction {
|
||||||
|
String? pITEMKEY;
|
||||||
|
String? pRETURNMSG;
|
||||||
|
String? pRETURNSTATUS;
|
||||||
|
int? pTRANSACTIONID;
|
||||||
|
|
||||||
|
SubmitAddressTransaction({this.pITEMKEY, this.pRETURNMSG, this.pRETURNSTATUS, this.pTRANSACTIONID});
|
||||||
|
|
||||||
|
SubmitAddressTransaction.fromJson(Map<String, dynamic> json) {
|
||||||
|
pITEMKEY = json['P_ITEM_KEY'];
|
||||||
|
pRETURNMSG = json['P_RETURN_MSG'];
|
||||||
|
pRETURNSTATUS = json['P_RETURN_STATUS'];
|
||||||
|
pTRANSACTIONID = json['P_TRANSACTION_ID'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['P_ITEM_KEY'] = this.pITEMKEY;
|
||||||
|
data['P_RETURN_MSG'] = this.pRETURNMSG;
|
||||||
|
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
|
||||||
|
data['P_TRANSACTION_ID'] = this.pTRANSACTIONID;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
class StartPhoneApprovalProcess {
|
||||||
|
String? pRETURNMSG;
|
||||||
|
String? pRETURNSTATUS;
|
||||||
|
|
||||||
|
StartPhoneApprovalProcess({this.pRETURNMSG, this.pRETURNSTATUS});
|
||||||
|
|
||||||
|
StartPhoneApprovalProcess.fromJson(Map<String, dynamic> json) {
|
||||||
|
pRETURNMSG = json['P_RETURN_MSG'];
|
||||||
|
pRETURNSTATUS = json['P_RETURN_STATUS'];
|
||||||
|
}
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||||
|
data['P_RETURN_MSG'] = this.pRETURNMSG;
|
||||||
|
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,336 @@
|
|||||||
|
import 'dart:io';
|
||||||
|
|
||||||
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
|
import 'package:flutter/cupertino.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:mohem_flutter_app/api/my_attendance_api_client.dart';
|
||||||
|
import 'package:mohem_flutter_app/api/profile_api_client.dart';
|
||||||
|
import 'package:mohem_flutter_app/classes/utils.dart';
|
||||||
|
import 'package:mohem_flutter_app/config/routes.dart';
|
||||||
|
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
||||||
|
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
||||||
|
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
|
||||||
|
import 'package:mohem_flutter_app/generated/locale_keys.g.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/dyanmic_forms/get_set_values_request_model.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/dyanmic_forms/validate_eit_transaction_model.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/generic_response_model.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/get_eit_dff_structure_list_model.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/get_employee_address_model.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/profile/basic_details_cols_structions.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/profile/basic_details_dff_structure.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/profile/get_address_dff_structure_list.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/profile/get_countries_list_model.dart';
|
||||||
|
import 'package:mohem_flutter_app/models/profile/submit_address_transaction.dart';
|
||||||
|
import 'package:mohem_flutter_app/ui/misc/request_submit_screen.dart';
|
||||||
|
import 'package:mohem_flutter_app/ui/my_attendance/dynamic_screens/dynamic_listview_screen.dart';
|
||||||
|
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
|
||||||
|
import 'package:mohem_flutter_app/widgets/button/default_button.dart';
|
||||||
|
import 'package:mohem_flutter_app/widgets/dynamic_forms/dynamic_textfield_widget.dart';
|
||||||
|
|
||||||
|
class DynamicProfileParams {
|
||||||
|
String title;
|
||||||
|
String dynamicId;
|
||||||
|
String uRL;
|
||||||
|
String requestID;
|
||||||
|
String colsURL;
|
||||||
|
int correctOrNew;
|
||||||
|
List<GetEmployeeAddressList>? getEmployeeAddressList;
|
||||||
|
|
||||||
|
DynamicProfileParams(this.title, this.dynamicId,
|
||||||
|
{this.uRL = 'GET_EIT_DFF_STRUCTURE', this.requestID = '', this.colsURL = '', this.getEmployeeAddressList = const <GetEmployeeAddressList>[], this.correctOrNew = 2});
|
||||||
|
}
|
||||||
|
|
||||||
|
class DynamicInputScreenAddress extends StatefulWidget {
|
||||||
|
DynamicInputScreenAddress({Key? key}) : super(key: key);
|
||||||
|
|
||||||
|
@override
|
||||||
|
_DynamicInputScreenState createState() {
|
||||||
|
return _DynamicInputScreenState();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class _DynamicInputScreenState extends State<DynamicInputScreenAddress> {
|
||||||
|
GenericResponseModel? genericResponseModel;
|
||||||
|
List<GetAddressDffStructureList>? getAddressDffStructureList;
|
||||||
|
SubmitAddressTransaction submitPhoneNumbers = SubmitAddressTransaction();
|
||||||
|
DynamicProfileParams? dynamicParams;
|
||||||
|
List<GetCountriesListModel> countriesList = [];
|
||||||
|
String dESCFLEXCONTEXTCODE = "";
|
||||||
|
String countryCode = 'SA';
|
||||||
|
String effectiveDate = '';
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
}
|
||||||
|
|
||||||
|
void getTransactionsStructure() async {
|
||||||
|
try {
|
||||||
|
Utils.showLoading(context);
|
||||||
|
genericResponseModel = await ProfileApiClient().getDffStructure(dynamicParams!.dynamicId, dynamicParams!.uRL, dynamicParams!.requestID);
|
||||||
|
getAddressDffStructureList = genericResponseModel?.getAddressDffStructureList ?? [];
|
||||||
|
|
||||||
|
if (dynamicParams!.correctOrNew == 1) {
|
||||||
|
getAddressDffStructureList?.forEach((element) {
|
||||||
|
dynamicParams!.getEmployeeAddressList!.forEach((userDetail) {
|
||||||
|
if (userDetail.aPPLICATIONCOLUMNNAME == element.aPPLICATIONCOLUMNNAME) {
|
||||||
|
element.getEmployeeAddressList = userDetail;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
getAddressDffStructureList!.insert(0, GetAddressDffStructureList(fORMATTYPE: 'X', sEGMENTPROMPT: LocaleKeys.profile_effectiveDate.tr()));
|
||||||
|
countriesList = await ProfileApiClient().getCountriesList();
|
||||||
|
List<ESERVICESVS> eSerivceList = [];
|
||||||
|
countriesList.forEach((element) {
|
||||||
|
eSerivceList.add(ESERVICESVS(
|
||||||
|
dESCRIPTION: element.cOUNTRYCODE,
|
||||||
|
vALUECOLUMNNAME: element.cOUNTRYNAME,
|
||||||
|
));
|
||||||
|
});
|
||||||
|
getAddressDffStructureList!
|
||||||
|
.insert(1, GetAddressDffStructureList(fORMATTYPE: 'C', sEGMENTPROMPT: LocaleKeys.profile_country.tr(), eSERVICESVS: eSerivceList, getEmployeeAddressList: GetEmployeeAddressList()));
|
||||||
|
}
|
||||||
|
print(getAddressDffStructureList);
|
||||||
|
// genericResponseModel = await ProfileApiClient().getColStructure(dynamicParams!.dynamicId, 'GET_BASIC_DET_COLS_STRUCTURE', dynamicParams!.requestID);
|
||||||
|
// getBasicDetColsStructureList = genericResponseModel?.getBasicDetColsStructureList ?? [];
|
||||||
|
// getBasicDetColsStructureList?.forEach((element) {
|
||||||
|
// element.userBasicDetail = dynamicParams!.getEmployeeBasicDetailsList!.singleWhere((userDetail) => userDetail.aPPLICATIONCOLUMNNAME == element.aPPLICATIONCOLUMNNAME);
|
||||||
|
// });
|
||||||
|
Utils.hideLoading(context);
|
||||||
|
setState(() {});
|
||||||
|
} catch (ex) {
|
||||||
|
Utils.hideLoading(context);
|
||||||
|
Utils.handleException(ex, context, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void calGetValueSetValues(GetAddressDffStructureList structureList) async {
|
||||||
|
try {
|
||||||
|
Utils.showLoading(context);
|
||||||
|
String segmentId = structureList.cHILDSEGMENTSVS!;
|
||||||
|
List<GetAddressDffStructureList> filteredList = getAddressDffStructureList?.where((element) => element.cHILDSEGMENTSVS == segmentId).toList() ?? [];
|
||||||
|
List<Map<String, dynamic>> values = filteredList
|
||||||
|
.map((e) => GetSetValuesRequestModel(
|
||||||
|
sEGMENTNAME: e.sEGMENTNAME, vALUECOLUMNNAME: e.eSERVICESDV!.pVALUECOLUMNNAME, dESCRIPTION: "", iDCOLUMNNAME: e.eSERVICESDV!.pIDCOLUMNNAME, fLEXVALUESETNAME: e.fLEXVALUESETNAME)
|
||||||
|
.toJson())
|
||||||
|
.toList();
|
||||||
|
ESERVICESVS genericResponseModel = await MyAttendanceApiClient().getValueSetValues(structureList.cHILDSEGMENTSVS!, structureList.dESCFLEXCONTEXTCODE!, structureList.dESCFLEXNAME!, values);
|
||||||
|
|
||||||
|
int index = getAddressDffStructureList!.indexWhere((element) => element.sEGMENTNAME == structureList.cHILDSEGMENTSVS);
|
||||||
|
getAddressDffStructureList![index].eSERVICESVS!.add(genericResponseModel);
|
||||||
|
// getEitDffStructureList = genericResponseModel?.getEITDFFStructureList ?? [];
|
||||||
|
//getEitDffStructureList = getEitDffStructureList!.where((element) => element.dISPLAYFLAG != "N").toList();
|
||||||
|
Utils.hideLoading(context);
|
||||||
|
setState(() {});
|
||||||
|
} catch (ex) {
|
||||||
|
Utils.hideLoading(context);
|
||||||
|
Utils.handleException(ex, context, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
if (dynamicParams == null) {
|
||||||
|
dynamicParams = ModalRoute.of(context)!.settings.arguments as DynamicProfileParams;
|
||||||
|
getTransactionsStructure();
|
||||||
|
}
|
||||||
|
return Scaffold(
|
||||||
|
backgroundColor: Colors.white,
|
||||||
|
appBar: AppBarWidget(
|
||||||
|
context,
|
||||||
|
title: dynamicParams!.title,
|
||||||
|
),
|
||||||
|
body: Column(
|
||||||
|
children: [
|
||||||
|
(getAddressDffStructureList == null
|
||||||
|
? const SizedBox()
|
||||||
|
: (getAddressDffStructureList!.isEmpty
|
||||||
|
? LocaleKeys.noDataAvailable.tr().toText16().center
|
||||||
|
: ListView(
|
||||||
|
physics: const BouncingScrollPhysics(),
|
||||||
|
padding: const EdgeInsets.all(21),
|
||||||
|
children: [
|
||||||
|
12.height,
|
||||||
|
ListView.separated(
|
||||||
|
physics: const NeverScrollableScrollPhysics(),
|
||||||
|
shrinkWrap: true,
|
||||||
|
itemBuilder: (BuildContext cxt, int parentIndex) {
|
||||||
|
return parseDynamicFormatType(getAddressDffStructureList![parentIndex], parentIndex);
|
||||||
|
},
|
||||||
|
separatorBuilder: (cxt, index) => 0.height,
|
||||||
|
itemCount: getAddressDffStructureList!.length),
|
||||||
|
],
|
||||||
|
)))
|
||||||
|
.expanded,
|
||||||
|
// 12.height,
|
||||||
|
DefaultButton(
|
||||||
|
LocaleKeys.next.tr(),
|
||||||
|
(getAddressDffStructureList ?? []).isEmpty ? null : () => {validateTransaction()},
|
||||||
|
).insideContainer,
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Widget parseDynamicFormatType(GetAddressDffStructureList model, int index) {
|
||||||
|
if (model.dISPLAYFLAG != "N") {
|
||||||
|
if (model.fORMATTYPE == "C") {
|
||||||
|
if (model.eSERVICESVS?.isNotEmpty ?? false) {
|
||||||
|
return PopupMenuButton(
|
||||||
|
child: DynamicTextFieldWidget(
|
||||||
|
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
|
||||||
|
model?.getEmployeeAddressList!.sEGMENTVALUEDSP ?? "",
|
||||||
|
isEnable: false,
|
||||||
|
isPopup: true,
|
||||||
|
).paddingOnly(bottom: 12),
|
||||||
|
itemBuilder: (_) => <PopupMenuItem<int>>[
|
||||||
|
for (int i = 0; i < model.eSERVICESVS!.length; i++) PopupMenuItem<int>(child: Text(model.eSERVICESVS![i].vALUECOLUMNNAME!), value: i),
|
||||||
|
],
|
||||||
|
onSelected: (int popupIndex) {
|
||||||
|
model?.getEmployeeAddressList!.sEGMENTVALUEDSP = model.eSERVICESVS![popupIndex].vALUECOLUMNNAME!;
|
||||||
|
model?.getEmployeeAddressList!.vARCHAR2VALUE = model.eSERVICESVS![popupIndex].dESCRIPTION;
|
||||||
|
setState(() {});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return DynamicTextFieldWidget(
|
||||||
|
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
|
||||||
|
model.getEmployeeAddressList?.sEGMENTVALUEDSP ?? "",
|
||||||
|
isReadOnly: model.rEADONLY == "Y",
|
||||||
|
onChange: (text) {
|
||||||
|
model.getEmployeeAddressList?.sEGMENTVALUEDSP = text;
|
||||||
|
},
|
||||||
|
).paddingOnly(bottom: 12);
|
||||||
|
} else if (model.fORMATTYPE == "N") {
|
||||||
|
if (model.eSERVICESVS?.isNotEmpty ?? false) {
|
||||||
|
return PopupMenuButton(
|
||||||
|
child: DynamicTextFieldWidget((model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""), model?.getEmployeeAddressList!.sEGMENTVALUEDSP ?? "",
|
||||||
|
isEnable: false, isPopup: true, isInputTypeNum: true)
|
||||||
|
.paddingOnly(bottom: 12),
|
||||||
|
itemBuilder: (_) => <PopupMenuItem<int>>[
|
||||||
|
for (int i = 0; i < model.eSERVICESVS!.length; i++) PopupMenuItem<int>(child: Text(model.eSERVICESVS![i].dESCRIPTION!), value: i),
|
||||||
|
],
|
||||||
|
onSelected: (int popupIndex) {
|
||||||
|
model?.getEmployeeAddressList!.sEGMENTVALUEDSP = model.eSERVICESVS![popupIndex].dESCRIPTION!;
|
||||||
|
model?.getEmployeeAddressList!.vARCHAR2VALUE = model.eSERVICESVS![popupIndex].vALUECOLUMNNAME!;
|
||||||
|
setState(() {});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return DynamicTextFieldWidget(
|
||||||
|
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
|
||||||
|
model.getEmployeeAddressList?.sEGMENTVALUEDSP ?? "",
|
||||||
|
isReadOnly: model.rEADONLY == "Y",
|
||||||
|
onChange: (text) {
|
||||||
|
model.getEmployeeAddressList?.sEGMENTVALUEDSP = text;
|
||||||
|
},
|
||||||
|
).paddingOnly(bottom: 12);
|
||||||
|
} else if (model.fORMATTYPE == "X") {
|
||||||
|
return DynamicTextFieldWidget(
|
||||||
|
(model.sEGMENTPROMPT ?? "") + (model.rEQUIREDFLAG == "Y" ? "*" : ""),
|
||||||
|
model.eSERVICESDV?.pIDCOLUMNNAME ?? (getAddressDffStructureList![index].dESCFLEXCONTEXTNAME ?? ""),
|
||||||
|
suffixIconData: Icons.calendar_today,
|
||||||
|
isEnable: false,
|
||||||
|
onTap: () async {
|
||||||
|
DateTime date = await _selectDate(context);
|
||||||
|
DateTime date1 = DateTime(date.year, date.month, date.day);
|
||||||
|
getAddressDffStructureList![index].dESCFLEXCONTEXTNAME = date.toString();
|
||||||
|
ESERVICESDV eservicesdv = ESERVICESDV(
|
||||||
|
pIDCOLUMNNAME: DateFormat('yyyy-MM-dd').format(date1),
|
||||||
|
pRETURNMSG: "null",
|
||||||
|
pRETURNSTATUS: getAddressDffStructureList![index].dEFAULTVALUE,
|
||||||
|
pVALUECOLUMNNAME: DateFormat('yyyy-MM-ddThh:mm:ss.s').format(date));
|
||||||
|
getAddressDffStructureList![index].eSERVICESDV = eservicesdv;
|
||||||
|
setState(() {});
|
||||||
|
if (model.cHILDSEGMENTSVSSplited?.isNotEmpty ?? false) {
|
||||||
|
calGetValueSetValues(model);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
).paddingOnly(bottom: 12);
|
||||||
|
}
|
||||||
|
|
||||||
|
return const SizedBox();
|
||||||
|
} else {
|
||||||
|
return const SizedBox();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void validateTransaction() async {
|
||||||
|
try {
|
||||||
|
Utils.showLoading(context);
|
||||||
|
List<Map<String, dynamic>> values = getAddressDffStructureList!.map((e) {
|
||||||
|
String tempVar = '';
|
||||||
|
if (e.fORMATTYPE == "X") {
|
||||||
|
// for date format type, date format is changed
|
||||||
|
tempVar = e.eSERVICESDV?.pVALUECOLUMNNAME ?? "";
|
||||||
|
|
||||||
|
if (tempVar.isNotEmpty) {
|
||||||
|
DateTime date = DateFormat('yyyy-MM-dd').parse(tempVar);
|
||||||
|
tempVar = DateFormat('dd/MMM/yyy').format(date);
|
||||||
|
if (e.aPPLICATIONCOLUMNNAME == null) {
|
||||||
|
effectiveDate = tempVar;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if (e.eSERVICESVS?.isNotEmpty ?? false) {
|
||||||
|
tempVar = e.getEmployeeAddressList!.vARCHAR2VALUE!;
|
||||||
|
if (e.aPPLICATIONCOLUMNNAME == null) {
|
||||||
|
countryCode = tempVar;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
tempVar = e.getEmployeeAddressList!.sEGMENTVALUEDSP ?? "";
|
||||||
|
}
|
||||||
|
|
||||||
|
return ValidateEitTransactionModel(dATEVALUE: null, nAME: e.aPPLICATIONCOLUMNNAME, nUMBERVALUE: null, tRANSACTIONNUMBER: 1, vARCHAR2VALUE: tempVar.toString()).toJson();
|
||||||
|
}).toList();
|
||||||
|
|
||||||
|
submitPhoneNumbers = await ProfileApiClient().submitAddressTransaction(dESCFLEXCONTEXTCODE, dynamicParams!.dynamicId, values, dynamicParams!.correctOrNew, countryCode, effectiveDate);
|
||||||
|
print(values);
|
||||||
|
Utils.hideLoading(context);
|
||||||
|
|
||||||
|
Navigator.pushNamed(context, AppRoutes.requestSubmitScreen,
|
||||||
|
arguments: RequestSubmitScreenParams(dynamicParams!.title, submitPhoneNumbers.pTRANSACTIONID!, submitPhoneNumbers.pITEMKEY!, 'address'));
|
||||||
|
} catch (ex) {
|
||||||
|
Utils.hideLoading(context);
|
||||||
|
Utils.handleException(ex, context, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DateTime selectedDate = DateTime.now();
|
||||||
|
|
||||||
|
Future<DateTime> _selectDate(BuildContext context) async {
|
||||||
|
DateTime time = selectedDate;
|
||||||
|
if (!Platform.isIOS) {
|
||||||
|
await showCupertinoModalPopup(
|
||||||
|
context: context,
|
||||||
|
builder: (cxt) => Container(
|
||||||
|
height: 250,
|
||||||
|
color: Colors.white,
|
||||||
|
child: CupertinoDatePicker(
|
||||||
|
backgroundColor: Colors.white,
|
||||||
|
mode: CupertinoDatePickerMode.date,
|
||||||
|
onDateTimeChanged: (value) {
|
||||||
|
if (value != null && value != selectedDate) {
|
||||||
|
time = value;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
initialDateTime: selectedDate,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
final DateTime? picked =
|
||||||
|
await showDatePicker(context: context, initialDate: selectedDate, initialEntryMode: DatePickerEntryMode.calendarOnly, firstDate: DateTime(2015, 8), lastDate: DateTime(2101));
|
||||||
|
if (picked != null && picked != selectedDate) {
|
||||||
|
time = picked;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return time;
|
||||||
|
}
|
||||||
|
}
|
@ -1,289 +0,0 @@
|
|||||||
import 'package:easy_localization/src/public_ext.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
|
||||||
import 'package:mohem_flutter_app/api/profile_api_client.dart';
|
|
||||||
import 'package:mohem_flutter_app/classes/colors.dart';
|
|
||||||
import 'package:mohem_flutter_app/classes/utils.dart';
|
|
||||||
import 'package:mohem_flutter_app/extensions/int_extensions.dart';
|
|
||||||
import 'package:mohem_flutter_app/extensions/string_extensions.dart';
|
|
||||||
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
|
|
||||||
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
|
|
||||||
import 'package:mohem_flutter_app/models/get_employee_contacts.model.dart';
|
|
||||||
|
|
||||||
class Profile extends StatefulWidget {
|
|
||||||
const Profile({Key? key}) : super(key: key);
|
|
||||||
|
|
||||||
@override
|
|
||||||
_ProfileState createState() => _ProfileState();
|
|
||||||
}
|
|
||||||
|
|
||||||
class _ProfileState extends State<Profile> {
|
|
||||||
String? fullName = "";
|
|
||||||
String? maritalStatus = "";
|
|
||||||
String? birthDate = "";
|
|
||||||
String? civilIdentityNumber = "";
|
|
||||||
String? emailAddress = "";
|
|
||||||
String? employeeNo = "";
|
|
||||||
|
|
||||||
List<GetEmployeeBasicDetailsList> getEmployeeBasicDetailsList = [];
|
|
||||||
|
|
||||||
@override
|
|
||||||
void initState() {
|
|
||||||
super.initState();
|
|
||||||
getEmployeeBasicDetails();
|
|
||||||
basicDetails();
|
|
||||||
}
|
|
||||||
|
|
||||||
void getEmployeeBasicDetails() async {
|
|
||||||
try {
|
|
||||||
Utils.showLoading(context);
|
|
||||||
getEmployeeBasicDetailsList = await ProfileApiClient().getEmployeeBasicDetails();
|
|
||||||
Utils.hideLoading(context);
|
|
||||||
basicDetails();
|
|
||||||
print("getEmployeeBasicDetailsList.length");
|
|
||||||
print(getEmployeeBasicDetailsList.length);
|
|
||||||
setState(() {});
|
|
||||||
} catch (ex) {
|
|
||||||
Utils.hideLoading(context);
|
|
||||||
Utils.handleException(ex, context, null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
basicDetails() {
|
|
||||||
for (int i = 0; i < getEmployeeBasicDetailsList.length; i++) {
|
|
||||||
if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'FULL_NAME') {
|
|
||||||
fullName = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
|
|
||||||
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'MARITAL_STATUS') {
|
|
||||||
maritalStatus = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
|
|
||||||
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'DATE_OF_BIRTH') {
|
|
||||||
birthDate = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
|
|
||||||
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'NATIONAL_IDENTIFIER') {
|
|
||||||
civilIdentityNumber = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
|
|
||||||
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'EMAIL_ADDRESS') {
|
|
||||||
emailAddress = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
|
|
||||||
} else if (getEmployeeBasicDetailsList[i].aPPLICATIONCOLUMNNAME == 'EMPLOYEE_NUMBER') {
|
|
||||||
employeeNo = getEmployeeBasicDetailsList[i].sEGMENTVALUEDSP;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Widget build(BuildContext context) {
|
|
||||||
return Scaffold(
|
|
||||||
appBar: AppBar(
|
|
||||||
backgroundColor: MyColors.lightGreenColor,
|
|
||||||
leading: Row(
|
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
|
|
||||||
children: [
|
|
||||||
IconButton(
|
|
||||||
icon: const Icon(
|
|
||||||
Icons.arrow_back_ios,
|
|
||||||
color: MyColors.backgroundBlackColor,
|
|
||||||
),
|
|
||||||
onPressed: () => Navigator.pop(context),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
backgroundColor: MyColors.lightGreenColor,
|
|
||||||
body: Stack(children: [
|
|
||||||
Align(
|
|
||||||
alignment: Alignment.topRight,
|
|
||||||
child: Container(
|
|
||||||
height: 30,
|
|
||||||
width: 80,
|
|
||||||
padding: EdgeInsets.only(left: 10.0, right: 10.0, top: 5, bottom: 5),
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
border: Border.all(
|
|
||||||
color: MyColors.gradiantEndColor,
|
|
||||||
style: BorderStyle.solid,
|
|
||||||
),
|
|
||||||
color: MyColors.gradiantEndColor,
|
|
||||||
borderRadius: BorderRadius.circular(100.0)),
|
|
||||||
child: InkWell(
|
|
||||||
onTap: () {},
|
|
||||||
child: RichText(
|
|
||||||
text: TextSpan(
|
|
||||||
children: [
|
|
||||||
WidgetSpan(
|
|
||||||
child: Icon(
|
|
||||||
Icons.image,
|
|
||||||
size: 20,
|
|
||||||
color: Colors.white,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
TextSpan(
|
|
||||||
text: " Edit",
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
),
|
|
||||||
),
|
|
||||||
Container(
|
|
||||||
width: double.infinity,
|
|
||||||
margin: EdgeInsets.only(top: 48),
|
|
||||||
height: double.infinity,
|
|
||||||
decoration: BoxDecoration(
|
|
||||||
color: Colors.white,
|
|
||||||
borderRadius: BorderRadius.only(topLeft: Radius.circular(30.0), topRight: Radius.circular(30.0)),
|
|
||||||
),
|
|
||||||
child: Column(
|
|
||||||
children: [
|
|
||||||
"${fullName}".toText20(isBold: true, color: MyColors.blackColor),
|
|
||||||
"${employeeNo}".toText12(isBold: false, color: MyColors.lightGrayColor),
|
|
||||||
"${emailAddress}".toText12(isBold: false, color: MyColors.black),
|
|
||||||
SizedBox(
|
|
||||||
height: 5,
|
|
||||||
),
|
|
||||||
Divider(
|
|
||||||
color: MyColors.lightGreyE6Color,
|
|
||||||
height: 20,
|
|
||||||
thickness: 8,
|
|
||||||
indent: 0,
|
|
||||||
endIndent: 0,
|
|
||||||
),
|
|
||||||
|
|
||||||
Container(
|
|
||||||
padding: EdgeInsets.only(left: 10.0),
|
|
||||||
child: Column(
|
|
||||||
crossAxisAlignment: CrossAxisAlignment.start,
|
|
||||||
children: <Widget>[
|
|
||||||
InkWell(
|
|
||||||
onTap: () {
|
|
||||||
|
|
||||||
},
|
|
||||||
child: Row(
|
|
||||||
children: <Widget>[
|
|
||||||
|
|
||||||
SizedBox(
|
|
||||||
width: 15,
|
|
||||||
),
|
|
||||||
"Personal Information".toText16(isBold: true, color: MyColors.grey3AColor),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
height: 5,
|
|
||||||
),
|
|
||||||
InkWell(
|
|
||||||
onTap: () {
|
|
||||||
|
|
||||||
},
|
|
||||||
child: Row(
|
|
||||||
children: <Widget>[
|
|
||||||
|
|
||||||
SizedBox(
|
|
||||||
width: 15,
|
|
||||||
),
|
|
||||||
"Basic Details".toText16(isBold: true, color: MyColors.grey3AColor),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
height: 5,
|
|
||||||
),
|
|
||||||
InkWell(
|
|
||||||
onTap: () {
|
|
||||||
|
|
||||||
},
|
|
||||||
child: Row(
|
|
||||||
children: <Widget>[
|
|
||||||
|
|
||||||
SizedBox(
|
|
||||||
width: 20,
|
|
||||||
),
|
|
||||||
"Contact Details".toText16(isBold: true, color: MyColors.grey3AColor),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
height: 5,
|
|
||||||
),
|
|
||||||
InkWell(
|
|
||||||
onTap: () {
|
|
||||||
|
|
||||||
},
|
|
||||||
child: Row(
|
|
||||||
children: <Widget>[
|
|
||||||
|
|
||||||
SizedBox(
|
|
||||||
width: 20,
|
|
||||||
),
|
|
||||||
"Family Members".toText16(isBold: true, color: MyColors.grey3AColor),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
SizedBox(
|
|
||||||
height: 5,
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
).paddingOnly( top: 35, bottom: 36),
|
|
||||||
),
|
|
||||||
Align(
|
|
||||||
alignment: Alignment.topCenter,
|
|
||||||
child: SizedBox(
|
|
||||||
child: CircleAvatar(
|
|
||||||
radius: 40.0,
|
|
||||||
backgroundColor: Colors.white,
|
|
||||||
child: CircleAvatar(
|
|
||||||
child: Align(
|
|
||||||
alignment: Alignment.bottomRight,
|
|
||||||
// child: CircleAvatar(
|
|
||||||
// backgroundColor: Colors.white,
|
|
||||||
// radius: 12.0,
|
|
||||||
// child: Icon(
|
|
||||||
// Icons.camera_alt,
|
|
||||||
// size: 15.0,
|
|
||||||
// color: Color(0xFF404040),
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
),
|
|
||||||
radius: 38.0,
|
|
||||||
// url:"",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
)),
|
|
||||||
])
|
|
||||||
// Container(
|
|
||||||
// margin: const EdgeInsets.only(top:50),
|
|
||||||
// decoration: const BoxDecoration(
|
|
||||||
// color: Colors.white,
|
|
||||||
// borderRadius: BorderRadius.only(
|
|
||||||
// topLeft: Radius.circular(30.0),
|
|
||||||
// topRight: Radius.circular(30.0))
|
|
||||||
// ),
|
|
||||||
// // color: MyColors.white,
|
|
||||||
// child: Stack(
|
|
||||||
// children: [
|
|
||||||
// Container(
|
|
||||||
// height: 30,
|
|
||||||
// color: MyColors.lightGreenColor,
|
|
||||||
// margin: const EdgeInsets.only(bottom: 20,),
|
|
||||||
// child: Row(
|
|
||||||
// mainAxisAlignment: MainAxisAlignment.center,
|
|
||||||
// children: [
|
|
||||||
// CircleAvatar(
|
|
||||||
// backgroundColor: Colors.grey.shade800,
|
|
||||||
// ),
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
// ListView(
|
|
||||||
// scrollDirection: Axis.vertical,
|
|
||||||
// children: [
|
|
||||||
// Column(
|
|
||||||
// children: [
|
|
||||||
// // 20.height,
|
|
||||||
// ],
|
|
||||||
// )
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// ]
|
|
||||||
// ),
|
|
||||||
// ),
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue