demo attachment document type added.

design_3.0_demo_module
Sikander Saleem 1 day ago
parent 9eaae96c84
commit 3372f7d38d

@ -247,6 +247,7 @@ class URLs {
static get getYesNoRequestTypeLookup => "$_baseUrl/Lookups/GetLookup?lookupEnum=4";
static get getDemoPeriodLookup => "$_baseUrl/Lookups/GetLookup?lookupEnum=4101";
static get getDemoDocumentTypes => "$_baseUrl/Lookups/GetLookup?lookupEnum=4104";
static get getClassificationTypeLookup => "$_baseUrl/Lookups/GetLookup?lookupEnum=450";

@ -119,6 +119,7 @@ import 'controllers/providers/api/gas_refill_comments.dart';
import 'controllers/providers/api/user_provider.dart';
import 'controllers/providers/settings/setting_provider.dart';
import 'dashboard_latest/dashboard_provider.dart';
import 'modules/demo_module/demo_document_lookup_provider.dart';
import 'modules/internal_audit_module/pages/equipment_internal_audit/update_equipment_internal_audit_page.dart';
import 'modules/internal_audit_module/provider/internal_audit_checklist_provider.dart';
import 'modules/cx_module/survey/survey_provider.dart';
@ -343,6 +344,7 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider(create: (_) => MedicalGasSupplierProvider()),
ChangeNotifierProvider(create: (_) => DemoProvider()),
ChangeNotifierProvider(create: (_) => DemoPeriodLookupProvider()),
ChangeNotifierProvider(create: (_) => DemoDocumentLookupProvider()),
],
child: GestureDetector(
onTap: () {

@ -1,12 +1,16 @@
import 'dart:io';
import 'package:test_sa/models/lookup.dart';
class GenericAttachmentModel {
GenericAttachmentModel({this.id, this.name,this.originalName,this.createdBy});
GenericAttachmentModel({this.id, this.name, this.originalName, this.createdBy,this.documentTypeId});
int? id;
String? name;
String ?createdBy;
String? createdBy;
String? originalName;
Lookup? documentTypeId;
GenericAttachmentModel.fromJson(Map<String, dynamic> json) {
id = json['id'];
name = json['name'];
@ -22,4 +26,4 @@ class GenericAttachmentModel {
data['originalName'] = originalName;
return data;
}
}
}

@ -40,6 +40,7 @@ import 'package:test_sa/providers/work_order/vendor_provider.dart';
import 'package:test_sa/views/widgets/images/multi_image_picker.dart';
import '../../../../../../new_views/common_widgets/default_app_bar.dart';
import 'demo_detail_view_page.dart';
import 'demo_document_lookup_provider.dart';
import 'demo_form_model.dart';
class CreateDemoRequestPage extends StatefulWidget {
@ -63,6 +64,7 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
SupplierDetails? supplier;
Lookup? demoPeriodLookup;
Lookup? demoDocumentLookup;
// List<Lookup> loanTypes = [];
@ -114,13 +116,33 @@ class _CreateDemoRequestPageState extends State<CreateDemoRequestPage> with Tick
16.height,
...vendorDetailsSection(),
16.height,
SingleItemDropDownMenu<Lookup, DemoDocumentLookupProvider>(
context: context,
height: 56.toScreenHeight,
title: "Document Type",
initialValue: demoDocumentLookup,
showShadow: false,
validator: (value) {
if (value == null) return "Mandatory";
return null;
},
backgroundColor: AppColor.fieldBgColor(context),
showAsBottomSheet: true,
onSelect: (value) {
demoDocumentLookup = value;
setState(() {});
},
),
16.height,
AttachmentPicker(
label: context.translation.attachments,
attachment: attachments,
buttonColor: AppColor.black10,
buttonColor: AppColor.black10.withOpacity(demoDocumentLookup != null ? 1 : .4),
onlyImages: false,
enabled: demoDocumentLookup != null,
documentType: demoDocumentLookup,
showAsListView: true,
buttonIcon: 'image-plus'.toSvgAsset(color: context.isDark ? AppColor.primary10 : AppColor.neutral120),
buttonIcon: 'image-plus'.toSvgAsset(color: (context.isDark ? AppColor.primary10 : AppColor.neutral120).withOpacity(demoDocumentLookup != null ? 1 : .4)),
onChange: (attachments) {
attachments = attachments;
setState(() {});

@ -0,0 +1,33 @@
import 'dart:convert';
import 'package:http/http.dart';
import 'package:test_sa/providers/loading_list_notifier.dart';
import '../../controllers/api_routes/api_manager.dart';
import '../../controllers/api_routes/urls.dart';
import '../../models/lookup.dart';
class DemoDocumentLookupProvider extends LoadingListNotifier<Lookup> {
@override
Future getData({int? id}) async {
if (loading == true) return -2;
loading = true;
notifyListeners();
try {
Response response = await ApiManager.instance.get(URLs.getDemoDocumentTypes);
stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) {
List categoriesListJson = json.decode(response.body)["data"];
items = categoriesListJson.map((item) => Lookup.fromJson(item)).toList();
}
loading = false;
notifyListeners();
return response.statusCode;
} catch (error) {
loading = false;
stateCode = -1;
notifyListeners();
return -1;
}
}
}

@ -9,6 +9,7 @@ import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/generic_attachment_model.dart';
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
import '../../../new_views/common_widgets/app_dashed_button.dart';
@ -321,6 +322,7 @@ class AttachmentPicker extends StatefulWidget {
final Function(List<GenericAttachmentModel>)? onChange;
final bool showAsGrid;
final bool showAsListView;
Lookup? documentType;
AttachmentPicker(
{Key? key,
@ -332,6 +334,7 @@ class AttachmentPicker extends StatefulWidget {
this.enabled = true,
this.onlyImages = false,
this.onChange,
this.documentType,
this.showAsGrid = false,
this.showAsListView = false,
this.buttonColor})
@ -419,7 +422,7 @@ class _AttachmentPickerState extends State<AttachmentPicker> {
);
if (result != null) {
for (var path in result.paths) {
widget.attachment.add(GenericAttachmentModel(id: 0, name: File(path!).path));
widget.attachment.add(GenericAttachmentModel(id: 0, name: File(path!).path, documentTypeId: widget.documentType));
}
if (widget.onChange != null) {
widget.onChange!(widget.attachment);
@ -466,7 +469,7 @@ class _AttachmentPickerState extends State<AttachmentPicker> {
if (pickedFile != null) {
File fileImage = File(pickedFile.path);
widget.attachment.add(GenericAttachmentModel(id: 0, name: fileImage.path));
widget.attachment.add(GenericAttachmentModel(id: 0, name: fileImage.path, documentTypeId: widget.documentType));
if (widget.onChange != null) {
widget.onChange!(widget.attachment);
}
@ -633,7 +636,7 @@ class _AttachmentPickerState extends State<AttachmentPicker> {
if (pickedFile != null) {
File fileImage = File(pickedFile.path);
widget.attachment.add(GenericAttachmentModel(id: 0, name: fileImage.path));
widget.attachment.add(GenericAttachmentModel(id: 0, name: fileImage.path, documentTypeId: widget.documentType));
if (widget.onChange != null) {
widget.onChange!(widget.attachment);
}

Loading…
Cancel
Save