|
|
|
@ -5,6 +5,7 @@ import 'package:test_sa/controllers/validator/validator.dart';
|
|
|
|
import 'package:test_sa/extensions/int_extensions.dart';
|
|
|
|
import 'package:test_sa/extensions/int_extensions.dart';
|
|
|
|
import 'package:test_sa/extensions/text_extensions.dart';
|
|
|
|
import 'package:test_sa/extensions/text_extensions.dart';
|
|
|
|
import 'package:test_sa/extensions/widget_extensions.dart';
|
|
|
|
import 'package:test_sa/extensions/widget_extensions.dart';
|
|
|
|
|
|
|
|
import 'package:test_sa/modules/cm_module/views/components/action_button/footer_action_button.dart';
|
|
|
|
import 'package:test_sa/modules/signup/models/company_model.dart';
|
|
|
|
import 'package:test_sa/modules/signup/models/company_model.dart';
|
|
|
|
import 'package:test_sa/modules/signup/models/group_model.dart';
|
|
|
|
import 'package:test_sa/modules/signup/models/group_model.dart';
|
|
|
|
import 'package:test_sa/modules/signup/models/signup_request_model.dart';
|
|
|
|
import 'package:test_sa/modules/signup/models/signup_request_model.dart';
|
|
|
|
@ -95,41 +96,35 @@ class _SignUpScreenState extends State<SignUpScreen> {
|
|
|
|
appBar: const DefaultAppBar(title: "Sign Up"),
|
|
|
|
appBar: const DefaultAppBar(title: "Sign Up"),
|
|
|
|
body: Column(
|
|
|
|
body: Column(
|
|
|
|
children: [
|
|
|
|
children: [
|
|
|
|
Expanded(
|
|
|
|
SingleChildScrollView(
|
|
|
|
|
|
|
|
padding: EdgeInsets.all(16.toScreenWidth),
|
|
|
|
child: Form(
|
|
|
|
child: Form(
|
|
|
|
key: _formKey,
|
|
|
|
key: _formKey,
|
|
|
|
child: SingleChildScrollView(
|
|
|
|
child: Column(
|
|
|
|
padding: EdgeInsets.all(16.toScreenWidth),
|
|
|
|
mainAxisSize: MainAxisSize.min,
|
|
|
|
child: Column(
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
spacing: 12,
|
|
|
|
children: [
|
|
|
|
children: [
|
|
|
|
_buildAssetGroupDropdown(),
|
|
|
|
_buildAssetGroupDropdown(),
|
|
|
|
16.height,
|
|
|
|
// 16.height,
|
|
|
|
if (_selectedAssetGroup != null) ...[
|
|
|
|
if (_selectedAssetGroup != null) ...[
|
|
|
|
_buildCompanyDropdown(),
|
|
|
|
_buildCompanyDropdown(),
|
|
|
|
16.height,
|
|
|
|
// 16.height,
|
|
|
|
],
|
|
|
|
|
|
|
|
if (_selectedCompany != null) ..._buildDynamicFields(),
|
|
|
|
|
|
|
|
],
|
|
|
|
],
|
|
|
|
),
|
|
|
|
if (_selectedCompany != null) ..._buildDynamicFields(),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
|
|
|
|
).toShadowContainer(context, borderRadius: 20),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
).expanded,
|
|
|
|
if (_selectedCompany != null)
|
|
|
|
if (_selectedCompany != null)
|
|
|
|
Container(
|
|
|
|
FooterActionButton.footerContainer(
|
|
|
|
padding: EdgeInsets.all(16.toScreenWidth),
|
|
|
|
context: context,
|
|
|
|
decoration: BoxDecoration(
|
|
|
|
child: AppFilledButton(
|
|
|
|
color: AppColor.background(context),
|
|
|
|
label: "Submit",
|
|
|
|
boxShadow: [
|
|
|
|
maxWidth: true,
|
|
|
|
BoxShadow(
|
|
|
|
loading: _isSubmitting,
|
|
|
|
color: Colors.black.withOpacity(0.05),
|
|
|
|
disableButton: _isSubmitting,
|
|
|
|
blurRadius: 10,
|
|
|
|
onPressed: _submitForm,
|
|
|
|
offset: const Offset(0, -2),
|
|
|
|
|
|
|
|
),
|
|
|
|
|
|
|
|
],
|
|
|
|
|
|
|
|
),
|
|
|
|
|
|
|
|
child: SafeArea(
|
|
|
|
|
|
|
|
child: _buildSubmitButton(),
|
|
|
|
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
],
|
|
|
|
@ -199,20 +194,20 @@ class _SignUpScreenState extends State<SignUpScreen> {
|
|
|
|
if (_isHMGGroup) {
|
|
|
|
if (_isHMGGroup) {
|
|
|
|
return [
|
|
|
|
return [
|
|
|
|
_buildEmployeeIdField(),
|
|
|
|
_buildEmployeeIdField(),
|
|
|
|
16.height,
|
|
|
|
// 16.height,
|
|
|
|
if (_employeeFetched) ...[
|
|
|
|
if (_employeeFetched) ...[
|
|
|
|
_buildReadOnlyField("Full Name", _fullNameController),
|
|
|
|
_buildReadOnlyField("Full Name", _fullNameController),
|
|
|
|
_buildReadOnlyField("Email Address", _emailController),
|
|
|
|
_buildReadOnlyField("Email Address", _emailController),
|
|
|
|
_buildReadOnlyField("Mobile Number", _mobileController),
|
|
|
|
_buildReadOnlyField("Mobile Number", _mobileController),
|
|
|
|
// _buildReadOnlyField("Site", _siteController),
|
|
|
|
// _buildReadOnlyField("Site", _siteController),
|
|
|
|
// _buildReadOnlyField("Department", _departmentController),
|
|
|
|
// _buildReadOnlyField("Department", _departmentController),
|
|
|
|
16.height,
|
|
|
|
// 16.height,
|
|
|
|
_buildExtensionField(),
|
|
|
|
_buildExtensionField(),
|
|
|
|
16.height,
|
|
|
|
// 16.height,
|
|
|
|
_buildSiteDropdown(),
|
|
|
|
_buildSiteDropdown(),
|
|
|
|
16.height,
|
|
|
|
// 16.height,
|
|
|
|
_buildDepartmentDropdown(),
|
|
|
|
_buildDepartmentDropdown(),
|
|
|
|
16.height,
|
|
|
|
// 16.height,
|
|
|
|
_buildRoleField(),
|
|
|
|
_buildRoleField(),
|
|
|
|
],
|
|
|
|
],
|
|
|
|
];
|
|
|
|
];
|
|
|
|
@ -220,17 +215,17 @@ class _SignUpScreenState extends State<SignUpScreen> {
|
|
|
|
return [
|
|
|
|
return [
|
|
|
|
// Employee ID is auto-generated for Non-HMG, so not shown during signup
|
|
|
|
// Employee ID is auto-generated for Non-HMG, so not shown during signup
|
|
|
|
_buildFullNameField(),
|
|
|
|
_buildFullNameField(),
|
|
|
|
16.height,
|
|
|
|
// 16.height,
|
|
|
|
_buildEmailField(),
|
|
|
|
_buildEmailField(),
|
|
|
|
16.height,
|
|
|
|
// 16.height,
|
|
|
|
_buildMobileField(),
|
|
|
|
_buildMobileField(),
|
|
|
|
16.height,
|
|
|
|
// 16.height,
|
|
|
|
_buildExtensionField(),
|
|
|
|
_buildExtensionField(),
|
|
|
|
16.height,
|
|
|
|
// 16.height,
|
|
|
|
_buildSiteDropdown(),
|
|
|
|
_buildSiteDropdown(),
|
|
|
|
16.height,
|
|
|
|
// 16.height,
|
|
|
|
_buildDepartmentDropdown(),
|
|
|
|
_buildDepartmentDropdown(),
|
|
|
|
16.height,
|
|
|
|
// 16.height,
|
|
|
|
_buildRoleField(),
|
|
|
|
_buildRoleField(),
|
|
|
|
];
|
|
|
|
];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -285,7 +280,7 @@ class _SignUpScreenState extends State<SignUpScreen> {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Widget _buildReadOnlyField(String label, TextEditingController controller) {
|
|
|
|
Widget _buildReadOnlyField(String label, TextEditingController controller) {
|
|
|
|
if(controller.text.isEmpty) {
|
|
|
|
if (controller.text.isEmpty) {
|
|
|
|
return const SizedBox();
|
|
|
|
return const SizedBox();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return Column(
|
|
|
|
return Column(
|
|
|
|
@ -403,16 +398,6 @@ class _SignUpScreenState extends State<SignUpScreen> {
|
|
|
|
);
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Widget _buildSubmitButton() {
|
|
|
|
|
|
|
|
return AppFilledButton(
|
|
|
|
|
|
|
|
label: "Submit",
|
|
|
|
|
|
|
|
maxWidth: true,
|
|
|
|
|
|
|
|
loading: _isSubmitting,
|
|
|
|
|
|
|
|
disableButton: _isSubmitting,
|
|
|
|
|
|
|
|
onPressed: _submitForm,
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Future<void> _fetchEmployeeDetails(String employeeId) async {
|
|
|
|
Future<void> _fetchEmployeeDetails(String employeeId) async {
|
|
|
|
final employee = await _signUpProvider.getEmployeeFromERP(employeeId);
|
|
|
|
final employee = await _signUpProvider.getEmployeeFromERP(employeeId);
|
|
|
|
|
|
|
|
|
|
|
|
@ -436,7 +421,7 @@ class _SignUpScreenState extends State<SignUpScreen> {
|
|
|
|
_emailController.text = employee.employeeEmailAddress ?? '';
|
|
|
|
_emailController.text = employee.employeeEmailAddress ?? '';
|
|
|
|
_mobileController.text = employee.employeeMobileNumber ?? '';
|
|
|
|
_mobileController.text = employee.employeeMobileNumber ?? '';
|
|
|
|
//Todo need to map site and department from ERP data
|
|
|
|
//Todo need to map site and department from ERP data
|
|
|
|
_departmentController.text = '';
|
|
|
|
_departmentController.text = '';
|
|
|
|
_siteController.text = employee.branchCode ?? '';
|
|
|
|
_siteController.text = employee.branchCode ?? '';
|
|
|
|
});
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
|