|
|
|
|
@ -3,6 +3,7 @@ import 'dart:developer';
|
|
|
|
|
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:provider/provider.dart';
|
|
|
|
|
import 'package:test_sa/controllers/providers/api/all_requests_provider.dart';
|
|
|
|
|
import 'package:test_sa/controllers/providers/api/ppm_provider.dart';
|
|
|
|
|
import 'package:test_sa/extensions/context_extension.dart';
|
|
|
|
|
import 'package:test_sa/extensions/int_extensions.dart';
|
|
|
|
|
@ -44,35 +45,42 @@ class _UpdatePpmState extends State<UpdatePpm> with TickerProviderStateMixin {
|
|
|
|
|
late PpmProvider ppmProvider;
|
|
|
|
|
|
|
|
|
|
_onSubmit({required int status}) async {
|
|
|
|
|
showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
|
|
|
|
|
ppmProvider.planPreventiveVisit?.preventiveVisitAttachments = [];
|
|
|
|
|
for (var item in ppmProvider.ppmPlanAttachments) {
|
|
|
|
|
ppmProvider.planPreventiveVisit?.preventiveVisitAttachments
|
|
|
|
|
?.add(PreventiveVisitAttachments(id: 0, attachmentName: ServiceRequestUtils.isLocalUrl(item.path) ? "${item.path.split("/").last}|${base64Encode(item.readAsBytesSync())}" : item.path));
|
|
|
|
|
|
|
|
|
|
if(ppmProvider.validate()){
|
|
|
|
|
showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
|
|
|
|
|
ppmProvider.planPreventiveVisit?.preventiveVisitAttachments = [];
|
|
|
|
|
for (var item in ppmProvider.ppmPlanAttachments) {
|
|
|
|
|
ppmProvider.planPreventiveVisit?.preventiveVisitAttachments
|
|
|
|
|
?.add(PreventiveVisitAttachments(id: 0, attachmentName: ServiceRequestUtils.isLocalUrl(item.path) ? "${item.path.split("/").last}|${base64Encode(item.readAsBytesSync())}" : item.path));
|
|
|
|
|
}
|
|
|
|
|
log('data i got is ${ppmProvider.planPreventiveVisit?.toJson(status: status)}');
|
|
|
|
|
|
|
|
|
|
ppmProvider.planPreventiveVisit?.preventiveVisitTimers = ppmProvider.planPreventiveVisit?.preventiveVisitTimers ?? [];
|
|
|
|
|
ppmProvider.planPreventiveVisit?.timerModelList?.forEach((timer) {
|
|
|
|
|
int durationInSecond = timer.endAt!.difference(timer.startAt!).inSeconds;
|
|
|
|
|
ppmProvider.planPreventiveVisit?.preventiveVisitTimers?.add(
|
|
|
|
|
PreventiveVisitTimers(
|
|
|
|
|
id: 0,
|
|
|
|
|
startDateTime: timer.startAt!.toIso8601String(), // Handle potential null
|
|
|
|
|
endDateTime: timer.endAt?.toIso8601String(), // Handle potential null
|
|
|
|
|
workingHours: ((durationInSecond) / 60 / 60),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
await ppmProvider.updateVisitByEngineer(status: status).whenComplete(() {
|
|
|
|
|
if(status==1){
|
|
|
|
|
AllRequestsProvider allRequestsProvider = Provider.of<AllRequestsProvider>(context, listen: false);
|
|
|
|
|
allRequestsProvider.reset();
|
|
|
|
|
allRequestsProvider.getAllRequests(context, typeTransaction: 4);
|
|
|
|
|
}
|
|
|
|
|
// allRequestsProvider.recurrentWoData?.recurrentWoTimerModel=null;
|
|
|
|
|
Navigator.pop(context);
|
|
|
|
|
Navigator.pop(context);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
log('data i got is ${ppmProvider.planPreventiveVisit?.toJson(status: status)}');
|
|
|
|
|
|
|
|
|
|
ppmProvider.planPreventiveVisit?.preventiveVisitTimers = ppmProvider.planPreventiveVisit?.preventiveVisitTimers ?? [];
|
|
|
|
|
ppmProvider.planPreventiveVisit?.timerModelList?.forEach((timer) {
|
|
|
|
|
int durationInSecond = timer.endAt!.difference(timer.startAt!).inSeconds;
|
|
|
|
|
ppmProvider.planPreventiveVisit?.preventiveVisitTimers?.add(
|
|
|
|
|
PreventiveVisitTimers(
|
|
|
|
|
id: 0,
|
|
|
|
|
startDateTime: timer.startAt!.toIso8601String(), // Handle potential null
|
|
|
|
|
endDateTime: timer.endAt?.toIso8601String(), // Handle potential null
|
|
|
|
|
workingHours: ((durationInSecond) / 60 / 60),
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
await ppmProvider.updateVisitByEngineer(status: status).whenComplete(() {
|
|
|
|
|
// if(status==1){// when click complete then this request remove from the list and status changes to closed..
|
|
|
|
|
//
|
|
|
|
|
// }
|
|
|
|
|
// allRequestsProvider.recurrentWoData?.recurrentWoTimerModel=null;
|
|
|
|
|
Navigator.pop(context);
|
|
|
|
|
Navigator.pop(context);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
|