add traf payload added.

design_3.0_internal_audit_module
Sikander Saleem 2 weeks ago
parent 76acdddabc
commit dd19507fa1

@ -256,6 +256,7 @@ class URLs {
static get attachmentBaseUrl => "https://atomsmdev.hmg.com/v2/mobile/Files/DownloadFile?fileName=";
//Traf
static get addTRAF => "$_baseUrl/TRAF/AddTRAF"; // get
static get getTRAFById => "$_baseUrl/TRAF/GetTRAFById"; // get
static get getAssetNDAutoCompleteByDynamicCodes => "$_baseUrl/AssetNameDefinition/GetAssetNDAutoCompleteByDynamicCodes"; // get

@ -5,6 +5,7 @@ import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/helper/utils.dart';
import 'package:test_sa/models/device/asset.dart';
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/new_models/traf_department.dart';
@ -25,6 +26,7 @@ import 'package:test_sa/providers/lookups/yes_no_lookup_provider.dart';
import 'package:test_sa/views/widgets/equipment/asset_picker.dart';
import 'traf_request_model.dart';
import 'traf_request_provider.dart';
class CreateTRAFRequestPage extends StatefulWidget {
static const String id = "/create-TRAF";
@ -57,13 +59,13 @@ class _CreateTRAFRequestPageState extends State<CreateTRAFRequestPage> {
@override
void initState() {
super.initState();
trafRequest = TrafRequestDataModel();
trafRequest = TrafRequestDataModel(id: 0);
resetProviders();
}
void resetProviders() {
Provider.of<RequestTypeLookupProvider>(context, listen: false).reset();
// Provider.of<YesNoLookupProvider>(context, listen: false).reset();
Provider.of<YesNoLookupProvider>(context, listen: false).reset();
}
@override
@ -102,7 +104,13 @@ class _CreateTRAFRequestPageState extends State<CreateTRAFRequestPage> {
initialValue: requestType,
onSelect: (value) {
requestType = value;
trafRequest?.requestTypeId = value?.value;
trafRequest?.requestTypeId = value?.id;
if (requestType?.value == 1) {
trafRequest?.assetId = null;
trafRequest?.qty = null;
} else if (requestType?.value == 2) {
trafRequest?.assetNDId = null;
}
setState(() {});
},
),
@ -112,7 +120,8 @@ class _CreateTRAFRequestPageState extends State<CreateTRAFRequestPage> {
clearAfterPick: false,
byName: true,
initialValue: "",
onPick: (part) {
onPick: (asset) {
trafRequest?.assetNDId = asset.id;
// model.partCatalogItem = PartCatalogItem(id: part.sparePart?.id, partNumber: part.sparePart?.partNo, partName: part.sparePart?.partName, oracleCode: part.sparePart?.oracleCode);
// setState(() {});
},
@ -128,6 +137,8 @@ class _CreateTRAFRequestPageState extends State<CreateTRAFRequestPage> {
backgroundColor: AppColor.white936,
onPick: (asset) async {
this.asset = asset;
trafRequest?.assetId = asset.id?.toInt();
trafRequest?.qty = 1;
setState(() {});
// pendingAssetServiceRequest = null;
// _serviceRequest.device = asset;
@ -248,6 +259,7 @@ class _CreateTRAFRequestPageState extends State<CreateTRAFRequestPage> {
trafRequest?.usingSolelyOrSharedId = value?.value;
if (isUsedSolelyOrShared?.value != 1) {
departments = [];
trafRequest?.departments = [];
Provider.of<DepartmentLookupProvider>(context, listen: false).reset();
}
setState(() {});
@ -266,9 +278,14 @@ class _CreateTRAFRequestPageState extends State<CreateTRAFRequestPage> {
initialValue: departments,
onSelect: (value) {
departments = value ?? [];
// setState(() {
//
// });
trafRequest?.departments = departments
.map((element) => Departments(
id: element.id!.toInt(),
trafId: element.id!.toInt(),
departmentId: element.id!.toInt(),
))
.toList();
// setState(() {});
},
),
],
@ -284,6 +301,10 @@ class _CreateTRAFRequestPageState extends State<CreateTRAFRequestPage> {
onSelect: (value) {
otherServicesEffects = value;
trafRequest?.isEffectedId = value?.value;
if (otherServicesEffects?.value != 1) {
trafRequest?.effectedServices = null;
}
setState(() {});
},
),
@ -315,6 +336,9 @@ class _CreateTRAFRequestPageState extends State<CreateTRAFRequestPage> {
onSelect: (value) {
useInCombination = value;
trafRequest?.isCombinationId = value?.value;
if (useInCombination?.value != 1) {
trafRequest?.usedWithCombination = null;
}
setState(() {});
},
),
@ -333,19 +357,6 @@ class _CreateTRAFRequestPageState extends State<CreateTRAFRequestPage> {
},
),
]
// 23.height,
// AttachmentPicker(
// label: context.translation.attachImage,
// attachment: attachments,
// buttonColor: AppColor.black10,
// onlyImages: false,
// buttonIcon: 'image-plus'.toSvgAsset(color: context.isDark ? AppColor.primary10 : AppColor.neutral120),
// //verify this if not required delete this ..
// onChange: (attachments) {
// attachments = attachments;
// setState(() {});
// },
// ),
],
).toShadowContainer(context, padding: 12, borderRadius: 20),
16.height,
@ -371,7 +382,8 @@ class _CreateTRAFRequestPageState extends State<CreateTRAFRequestPage> {
child: AppFilledButton(
buttonColor: AppColor.primary10,
label: context.translation.submitRequest,
onPressed: _acknowledgement ? _submit : null,
disableButton: !_acknowledgement,
onPressed: _verifyAndSubmit,
// buttonColor: AppColor.primary10,
),
),
@ -381,7 +393,12 @@ class _CreateTRAFRequestPageState extends State<CreateTRAFRequestPage> {
);
}
void _submit() {
void _verifyAndSubmit() async {
trafRequest?.employeeId = context.userProvider.user?.userID;
trafRequest?.siteId = context.userProvider.user?.clientId;
// Utils.showLoading(context);
// await Provider.of<TrafRequestProvider>(context, listen: false).addTraf(trafRequest!.toJson());
// Utils.hideLoading(context);
Navigator.push(context, MaterialPageRoute(builder: (context) => TrafRequestDetailPage(trafId: 27)));
}
}

@ -393,6 +393,8 @@ class TrafRequestDataModel {
data['comment'] = this.comment;
if (this.attachments != null) {
data['attachments'] = this.attachments!.map((v) => v.toJson()).toList();
} else {
data['attachments'] = [];
}
data['isBudgetId'] = this.isBudgetId;
data['isBudgetName'] = this.isBudgetName;

@ -12,6 +12,24 @@ class TrafRequestProvider extends ChangeNotifier {
TrafRequestDataModel? trafRequestDataModel;
Future<int> addTraf(Map<String, dynamic> body) async {
try {
isLoading = true;
notifyListeners();
Response response = await ApiManager.instance.post(URLs.addTRAF, body: body);
if (response.statusCode >= 200 && response.statusCode < 300) {
// trafRequestDataModel = TrafRequestDataModel.fromJson(json.decode(response.body)["data"]);
}
isLoading = false;
notifyListeners();
return 0;
} catch (error) {
isLoading = false;
notifyListeners();
return -1;
}
}
Future<int> getTRAFById(int trafId) async {
try {
isLoading = true;

@ -1,3 +1,6 @@
import 'dart:convert';
import 'dart:io';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/extensions/context_extension.dart';
@ -6,6 +9,7 @@ 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/modules/cm_module/utilities/service_request_utils.dart';
import 'package:test_sa/modules/cm_module/views/components/action_button/footer_action_button.dart';
import 'package:test_sa/modules/traf_module/traf_request_model.dart';
import 'package:test_sa/modules/traf_module/traf_request_provider.dart';
@ -54,6 +58,7 @@ class _UpdateTrafRequestPageState extends State<UpdateTrafRequestPage> {
Provider.of<RecommendationLookupProvider>(context, listen: false).reset();
trafRequestProvider = Provider.of<TrafRequestProvider>(context, listen: false);
trafRequest = trafRequestProvider.trafRequestDataModel!;
attachments = trafRequest.attachments?.map((item) => GenericAttachmentModel(id: item.id, name: item.attachmentName)).toList() ?? [];
}
@override
@ -82,8 +87,8 @@ class _UpdateTrafRequestPageState extends State<UpdateTrafRequestPage> {
initialValue: classificationType,
onSelect: (value) {
classificationType = value;
// trafRequest?.requestTypeId = value?.value;
setState(() {});
trafRequest?.cla = value?.value;
// setState(() {});
},
),
12.height,
@ -184,8 +189,9 @@ class _UpdateTrafRequestPageState extends State<UpdateTrafRequestPage> {
initialValue: assessorRecommendation,
onSelect: (value) {
assessorRecommendation = value;
trafRequest?.requestTypeId = value?.value;
// trafRequest?.requestTypeId = value?.value;
setState(() {});
// setState(() {});
},
),
12.height,
@ -208,13 +214,28 @@ class _UpdateTrafRequestPageState extends State<UpdateTrafRequestPage> {
buttonColor: AppColor.black10,
onlyImages: false,
buttonIcon: 'image-plus'.toSvgAsset(color: AppColor.neutral120),
onChange: (attachment) {
attachments = attachment;
},
),
],
).toShadowContainer(context, borderRadius: 20, padding: 12),
).expanded,
FooterActionButton.footerContainer(
context: context,
child: AppFilledButton(buttonColor: AppColor.primary10, label: "Update", onPressed: () {}
child: AppFilledButton(
buttonColor: AppColor.primary10,
label: "Update",
onPressed: () {
trafRequest.attachments = [];
for (var item in attachments) {
String fileName =
ServiceRequestUtils.isLocalUrl(item.name ?? '') ? ("${item.name ?? ''.split("/").last}|${base64Encode(File(item.name ?? '').readAsBytesSync())}") : item.name ?? '';
trafRequest.attachments!.add(
Attachments(id: item.id, trafId: item.id, attachmentName: fileName),
);
}
}
// buttonColor: AppColor.primary10,
),
),

@ -71,7 +71,7 @@ class _MultipleItemDropDownMenuState<T extends Base, X extends LoadingListNotifi
if (sourceList != null && sourceList.isNotEmpty) {
// Collect matches based on identifier
final results = sourceList.where((element) => widget.initialValue!.any((init) => init.identifier == element.identifier)).toList();
final results = sourceList.where((element) => widget.initialValue!.any((init) => init.name == element.name)).toList();
if (results.isNotEmpty) {
_selectedItem
@ -106,11 +106,10 @@ class _MultipleItemDropDownMenuState<T extends Base, X extends LoadingListNotifi
if (widget.initialValue.isNotEmpty) {
// Get the source list
final sourceList = (X == NullableLoadingProvider ? widget.staticData : provider?.items);
if (sourceList != null && sourceList.isNotEmpty) {
// Collect matches based on identifier
final results = sourceList.where((element) => widget.initialValue!.any((init) => init.identifier == element.identifier)).toList();
final results = sourceList.where((element) => widget.initialValue!.any((init) => init.name == element.name)).toList();
if (results.isNotEmpty) {
_selectedItem
..clear()

Loading…
Cancel
Save