cost added.

design_3.0_task_module_new
Sikander Saleem 6 months ago
parent 36657cd5ca
commit 16a0f20fbb

@ -18,7 +18,6 @@ import 'package:test_sa/models/new_models/work_order_detail_model.dart';
import 'package:test_sa/models/service_request/spare_parts.dart';
import 'package:test_sa/models/service_request/supplier_details.dart';
class ServiceRequestDetailProvider extends ChangeNotifier {
final pageItemNumber = 10;

@ -7,6 +7,7 @@ import 'package:test_sa/cm_module/views/components/action_button/footer_action_b
import 'package:test_sa/cm_module/views/components/asset_detail_card.dart';
import 'package:test_sa/cm_module/views/components/initial_visit_card.dart';
import 'package:test_sa/cm_module/views/forms/asset_retired/asset_retired.dart';
import 'package:test_sa/cm_module/views/forms/cost/cost_detail_form_screen.dart';
import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
@ -65,8 +66,8 @@ class _ServiceRequestDetailViewState extends State<ServiceRequestDetailView> {
workOrderDetailCard(context, requestProvider.currentWorkOrder!.data!, _userProvider, requestProvider),
initialVisitCard(requestDetailProvider: requestProvider, userProvider: _userProvider),
assetDetailCard(requestDetailProvider: requestProvider, userProvider: _userProvider),
// 12.height,
// costCard(context, requestProvider.currentWorkOrder!.data!),
12.height,
costCard(context, requestProvider),
12.height,
contactInfoCard(context, requestProvider.currentWorkOrder!.data!),
20.height,
@ -438,29 +439,39 @@ class _ServiceRequestDetailViewState extends State<ServiceRequestDetailView> {
).toShadowContainer(context, padding: 12);
}
Widget costCard(BuildContext context, WorkOrderData workOrder) {
Widget costCard(BuildContext context, ServiceRequestDetailProvider provider) {
return Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
"Cost",
style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
Row(
children: [
Text(
"Cost",
style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
).expanded,
if (!provider.isReadOnlyRequest)
"edit_icon".toSvgAsset(height: 21, width: 21).onPress(() async {
provider.refreshTimer = false;
await Navigator.push(context, MaterialPageRoute(builder: (context) => CostDetailFormScreen(isEdit: true)));
provider.refreshTimer = true;
}),
],
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Text(
'Spare Part Cost: ${workOrder.sparePartCost ?? '-'}',
'Spare Part Cost: ${provider.currentWorkOrder!.data?.sparePartCost ?? '-'}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
),
Text(
'Labour Cost: ${context.translation.employeeId}: ${workOrder.labourCost ?? '-'}',
'Labour Cost: ${provider.currentWorkOrder!.data?.labourCost ?? '-'}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
),
Text(
'Travel Cost: ${context.translation.telephone}: ${workOrder.travelCost ?? '-'}',
'Travel Cost: ${provider.currentWorkOrder!.data?.travelCost ?? '-'}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
),
],

@ -61,56 +61,55 @@ class _CostDetailFormScreenState extends State<CostDetailFormScreen> with Ticker
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
if (widget.isEdit) ...[
SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
AppTextFormField(
labelText: "Spare Part Cost",
backgroundColor: AppColor.neutral100,
initialValue: requestDetailProvider.workOrderCostModel?.sparePartCost?.toString(),
textAlign: TextAlign.center,
labelStyle: AppTextStyles.textFieldLabelStyle,
showShadow: false,
onChange: (value) {
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.callResponse = value;
},
style: Theme.of(context).textTheme.titleMedium,
),
8.height,
AppTextFormField(
labelText: "Labour Cost",
backgroundColor: AppColor.neutral100,
initialValue: requestDetailProvider.workOrderCostModel?.labourCost?.toString(),
textAlign: TextAlign.center,
labelStyle: AppTextStyles.textFieldLabelStyle,
showShadow: false,
onChange: (value) {
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.descriptionOfFinding = value;
},
style: Theme.of(context).textTheme.titleMedium,
),
8.height,
AppTextFormField(
labelText: "Travel Cost",
backgroundColor: AppColor.neutral100,
initialValue: requestDetailProvider.workOrderCostModel?.travelCost?.toString(),
textAlign: TextAlign.center,
labelStyle: AppTextStyles.textFieldLabelStyle,
showShadow: false,
onChange: (value) {
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.actionTaken = value;
},
style: Theme.of(context).textTheme.titleMedium,
),
],
).toShadowContainer(context).paddingAll(16),
).expanded,
] else ...[
assetStatusWidget(context: context, workOrderData: requestDetailProvider.engineerUpdateWorkOrderHelperModel!).toShadowContainer(context).paddingAll(16),
],
SingleChildScrollView(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
AppTextFormField(
labelText: "Spare Part Cost",
backgroundColor: AppColor.neutral100,
initialValue: requestDetailProvider.workOrderCostModel?.sparePartCost?.toString(),
textAlign: TextAlign.center,
labelStyle: AppTextStyles.textFieldLabelStyle,
textInputType: TextInputType.number,
showShadow: false,
onChange: (value) {
requestDetailProvider.workOrderCostModel?.sparePartCost = num.parse(value);
},
style: Theme.of(context).textTheme.titleMedium,
),
8.height,
AppTextFormField(
labelText: "Labour Cost",
backgroundColor: AppColor.neutral100,
initialValue: requestDetailProvider.workOrderCostModel?.labourCost?.toString(),
textAlign: TextAlign.center,
labelStyle: AppTextStyles.textFieldLabelStyle,
textInputType: TextInputType.number,
showShadow: false,
onChange: (value) {
requestDetailProvider.workOrderCostModel?.labourCost = num.parse(value);
},
style: Theme.of(context).textTheme.titleMedium,
),
8.height,
AppTextFormField(
labelText: "Travel Cost",
backgroundColor: AppColor.neutral100,
initialValue: requestDetailProvider.workOrderCostModel?.travelCost?.toString(),
textAlign: TextAlign.center,
labelStyle: AppTextStyles.textFieldLabelStyle,
textInputType: TextInputType.number,
showShadow: false,
onChange: (value) {
requestDetailProvider.workOrderCostModel?.travelCost = num.parse(value);
},
style: Theme.of(context).textTheme.titleMedium,
),
],
).toShadowContainer(context).paddingAll(16),
).expanded,
Container(
padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth, vertical: 16.toScreenHeight),
color: AppColor.white10,
@ -120,7 +119,7 @@ class _CostDetailFormScreenState extends State<CostDetailFormScreen> with Ticker
onPressed: () async {
if (validateForm(requestDetailProvider: requestDetailProvider)) {
showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
await requestDetailProvider.engineerUpdateWorkOrder();
await requestDetailProvider.engineerUpdateCost();
Navigator.pop(context);
Navigator.pop(context);
}

@ -153,9 +153,9 @@ class WorkOrderData {
String? descriptionOfFinding;
String? actionTaken;
int? since;
int? sparePartCost;
int? labourCost;
int? travelCost;
num? sparePartCost;
num? labourCost;
num? travelCost;
List<WorkOrderHistory> workOrderHistory;
List<Activities> activities;
List<dynamic> activityAssetToBeRetireds;
@ -187,7 +187,7 @@ class WorkOrderData {
since: json['since'],
travelCost: json['travelCost'],
sparePartCost: json['sparePartCost'],
labourCost: json['labourCost'],
labourCost: json['laborCost'],
assetType: json["assetType"] == null ? null : Lookup.fromJson(json["assetType"]),
assignedEmployee: json["assignedEmployee"] == null ? null : WorkOrderAssignedEmployee.fromJson(json["assignedEmployee"]),
lastActivityStatus: json["lastActivityStatus"] != null ? Lookup.fromJson(json["lastActivityStatus"]) : null,

Loading…
Cancel
Save