Merge branch 'development_sultan' into 'master'
Development sultan See merge request mirza.shafique/mohem_flutter_app!49merge-requests/1/merge
commit
fabb847fd8
@ -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,24 @@
|
||||
class SubmitBasicDetailsTransactionList {
|
||||
String? pITEMKEY;
|
||||
String? pRETURNMSG;
|
||||
String? pRETURNSTATUS;
|
||||
int? pTRANSACTIONID;
|
||||
|
||||
SubmitBasicDetailsTransactionList({this.pITEMKEY, this.pRETURNMSG, this.pRETURNSTATUS, this.pTRANSACTIONID});
|
||||
|
||||
SubmitBasicDetailsTransactionList.fromJson(Map<String, dynamic> json) {
|
||||
pITEMKEY = json['P_ITEM_KEY'];
|
||||
pRETURNMSG = json['P_RETURN_MSG'];
|
||||
pRETURNSTATUS = json['P_RETURN_STATUS'];
|
||||
pTRANSACTIONID = json['P_TRANSACTION_ID'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
final Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['P_ITEM_KEY'] = this.pITEMKEY;
|
||||
data['P_RETURN_MSG'] = this.pRETURNMSG;
|
||||
data['P_RETURN_STATUS'] = this.pRETURNSTATUS;
|
||||
data['P_TRANSACTION_ID'] = this.pTRANSACTIONID;
|
||||
return data;
|
||||
}
|
||||
}
|
@ -0,0 +1,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;
|
||||
}
|
||||
}
|
@ -1,50 +0,0 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:mohem_flutter_app/classes/colors.dart';
|
||||
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
|
||||
|
||||
class DeleteFamilyMember extends StatefulWidget {
|
||||
const DeleteFamilyMember({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_DeleteFamilyMemberState createState() => _DeleteFamilyMemberState();
|
||||
}
|
||||
|
||||
class _DeleteFamilyMemberState extends State<DeleteFamilyMember> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
appBar: AppBarWidget(
|
||||
context,
|
||||
title: "Dependents And Beneficiaries",
|
||||
),
|
||||
backgroundColor: MyColors.backgroundColor,
|
||||
bottomSheet: footer(),
|
||||
body: Column(
|
||||
children: [],
|
||||
));
|
||||
}
|
||||
|
||||
Widget footer() {
|
||||
return Row(
|
||||
mainAxisAlignment: MainAxisAlignment.center,
|
||||
children: [
|
||||
Container(
|
||||
color: MyColors.gradiantEndColor,
|
||||
// margin: EdgeInsets.only(left: 50,right: 20),
|
||||
padding: EdgeInsets.only(left: 50, right: 50),
|
||||
child: TextButton(
|
||||
style: TextButton.styleFrom(
|
||||
primary: MyColors.white,
|
||||
onSurface: MyColors.white,
|
||||
backgroundColor: MyColors.gradiantEndColor,
|
||||
),
|
||||
onPressed: () {},
|
||||
child: Text(
|
||||
'Next',
|
||||
style: TextStyle(fontStyle: FontStyle.normal, fontSize: 16, color: Colors.white, fontWeight: FontWeight.w600),
|
||||
),
|
||||
)),
|
||||
],
|
||||
);
|
||||
}
|
||||
}
|
@ -0,0 +1,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,271 +0,0 @@
|
||||
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/string_extensions.dart';
|
||||
import 'package:mohem_flutter_app/extensions/widget_extensions.dart';
|
||||
import 'package:mohem_flutter_app/models/get_employee_basic_details.model.dart';
|
||||
|
||||
class Profile extends StatefulWidget {
|
||||
const Profile({Key? key}) : super(key: key);
|
||||
|
||||
@override
|
||||
_ProfileState createState() => _ProfileState();
|
||||
}
|
||||
|
||||
// todo '@fatima' use extension methods for widgets,7 dont use hard code strings, make it localize
|
||||
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();
|
||||
setState(() {});
|
||||
} catch (ex) {
|
||||
Utils.hideLoading(context);
|
||||
Utils.handleException(ex, context, null);
|
||||
}
|
||||
}
|
||||
|
||||
void 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