You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
250 lines
9.4 KiB
Dart
250 lines
9.4 KiB
Dart
import 'dart:developer';
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'package:test_sa/extensions/context_extension.dart';
|
|
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/models/new_models/site.dart';
|
|
import 'package:test_sa/modules/asset_delivery_module/pages/asset_delivery_detail_page.dart';
|
|
import 'package:test_sa/modules/asset_delivery_module/pages/asset_delivery_table_card_view.dart';
|
|
import 'package:test_sa/modules/asset_delivery_module/pages/change_status_bottomsheet.dart';
|
|
import 'package:test_sa/modules/asset_delivery_module/pages/delivery_inspection/delivery_inspection_form_view.dart';
|
|
import 'package:test_sa/modules/asset_inventory_module/models/asset_inventory_model.dart';
|
|
import 'package:test_sa/modules/asset_inventory_module/models/session_model.dart';
|
|
import 'package:test_sa/new_views/app_style/app_color.dart';
|
|
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
|
|
import 'package:test_sa/new_views/common_widgets/default_app_bar.dart';
|
|
import 'package:test_sa/views/widgets/loaders/no_data_found.dart';
|
|
import 'package:test_sa/views/widgets/requests/request_status.dart';
|
|
|
|
class AssetDeliveryPage extends StatefulWidget {
|
|
final int? requestId;
|
|
|
|
const AssetDeliveryPage({
|
|
Key? key,
|
|
this.requestId,
|
|
}) : super(key: key);
|
|
|
|
@override
|
|
State<AssetDeliveryPage> createState() => _AssetDeliveryPageState();
|
|
}
|
|
|
|
class _AssetDeliveryPageState extends State<AssetDeliveryPage> {
|
|
@override
|
|
void initState() {
|
|
super.initState();
|
|
}
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return Scaffold(
|
|
backgroundColor: Theme.of(context).scaffoldBackgroundColor,
|
|
appBar: DefaultAppBar(
|
|
title: 'Asset Delivery'.addTranslation,
|
|
onBackPress: () {
|
|
Navigator.pop(context);
|
|
},
|
|
),
|
|
body: widget.requestId == null
|
|
? const NoDataFound()
|
|
: ListView(
|
|
padding: const EdgeInsets.all(12),
|
|
children: [
|
|
requestDetailCard(context),
|
|
// const SizedBox(height: 12),
|
|
const Divider().defaultStyle(context),
|
|
assetDeliveryTableList(context),
|
|
],
|
|
).toShadowContainer(context, borderRadius: 20, padding: 0, margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 12)),
|
|
);
|
|
}
|
|
|
|
TextStyle infoTextStyle(context) => AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120);
|
|
|
|
Widget requestDetailCard(BuildContext context) {
|
|
return Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
// Row(
|
|
// crossAxisAlignment: CrossAxisAlignment.start,
|
|
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
// children: [
|
|
// //
|
|
// StatusLabel(
|
|
// label: sessionModel.statusName,
|
|
// id: sessionModel.statusId,
|
|
// radius: 4,
|
|
// textColor: AppColor.getRequestStatusTextColorByName(context, sessionModel.statusName),
|
|
// backgroundColor: AppColor.getRequestStatusColorByName(context, sessionModel.statusName),
|
|
// // textColor: AppColor.green15,
|
|
// // backgroundColor: AppColor.greenStatus(context),
|
|
// ),
|
|
// Text(
|
|
// sessionModel.createdDate!.toString().toServiceRequestCardFormat,
|
|
// textAlign: TextAlign.end,
|
|
// style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
|
|
// )
|
|
// ],
|
|
// ),
|
|
8.height,
|
|
//neutral120
|
|
Text(
|
|
'PO No. Internal'.addTranslation,
|
|
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.black10),
|
|
),
|
|
8.height,
|
|
Text(
|
|
'PO8745623'.addTranslation,
|
|
style: AppTextStyles.bodyText2.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral120),
|
|
),
|
|
8.height,
|
|
Row(
|
|
mainAxisSize: MainAxisSize.min,
|
|
children: [
|
|
Checkbox(
|
|
value: true,
|
|
activeColor: AppColor.neutral120,
|
|
materialTapTargetSize: MaterialTapTargetSize.shrinkWrap,
|
|
visualDensity: const VisualDensity(horizontal: -4, vertical: -3),
|
|
onChanged: (value) {},
|
|
),
|
|
8.width,
|
|
Text(
|
|
'HMS'.addTranslation,
|
|
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.black10),
|
|
),
|
|
],
|
|
),
|
|
8.height,
|
|
Text(
|
|
'Operation Units'.addTranslation,
|
|
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.black10),
|
|
),
|
|
8.height,
|
|
Text(
|
|
'50'.addTranslation,
|
|
style: AppTextStyles.bodyText2.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral120),
|
|
),
|
|
8.height,
|
|
Text(
|
|
'PO No.'.addTranslation,
|
|
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.black10),
|
|
),
|
|
8.height,
|
|
Text(
|
|
'PO438'.addTranslation,
|
|
style: AppTextStyles.bodyText2.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral120),
|
|
),
|
|
8.height,
|
|
Text(
|
|
'Warranty Period'.addTranslation,
|
|
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.black10),
|
|
),
|
|
8.height,
|
|
Text(
|
|
'1 Year'.addTranslation,
|
|
style: AppTextStyles.bodyText2.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral120),
|
|
),
|
|
8.height,
|
|
Text(
|
|
'Payment Terms Amount'.addTranslation,
|
|
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.black10),
|
|
),
|
|
8.height,
|
|
Text(
|
|
'70%'.addTranslation,
|
|
style: AppTextStyles.bodyText2.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral120),
|
|
),
|
|
8.height,
|
|
Text(
|
|
'EDD (Estimated Delivery Date)'.addTranslation,
|
|
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.black10),
|
|
),
|
|
8.height,
|
|
Text(
|
|
'25 December, 2025'.addTranslation,
|
|
style: AppTextStyles.bodyText2.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral120),
|
|
),
|
|
8.height,
|
|
Text(
|
|
'Total'.addTranslation,
|
|
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.black10),
|
|
),
|
|
8.height,
|
|
Text(
|
|
'4930'.addTranslation,
|
|
style: AppTextStyles.bodyText2.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral120),
|
|
),
|
|
],
|
|
);
|
|
}
|
|
|
|
Widget assetDeliveryTableList(BuildContext context) {
|
|
final assetDeliveryTableList = ['abc', 'def', 'ghi', 'fhg', 'hjhh'];
|
|
return Column(
|
|
mainAxisSize: MainAxisSize.min,
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
Row(
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
children: [
|
|
Text(
|
|
"Asset Delivery Table",
|
|
style: AppTextStyles.heading6.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.black10),
|
|
),
|
|
Container(
|
|
height: 24,
|
|
width: 24,
|
|
decoration: const BoxDecoration(
|
|
shape: BoxShape.circle,
|
|
color: AppColor.primary10, // or AppColor.blueStatus(context)
|
|
),
|
|
alignment: Alignment.center,
|
|
child: const Icon(
|
|
Icons.add,
|
|
color: Colors.white,
|
|
size: 16,
|
|
),
|
|
).onPress(() {
|
|
//add entry into table.
|
|
}),
|
|
// AppFilledButton(
|
|
// label: '',
|
|
// maxWidth: true,
|
|
// textColor: AppColor.textColor(context),
|
|
// buttonColor: context.isDark ? AppColor.neutral60 : AppColor.white10,
|
|
// icon: Icon(Icons.add_circle, color: AppColor.blueStatus(context)),
|
|
// showIcon: true,
|
|
// onPressed: (){
|
|
//
|
|
// },
|
|
// )
|
|
],
|
|
),
|
|
8.height,
|
|
ListView.separated(
|
|
itemCount: assetDeliveryTableList.length,
|
|
separatorBuilder: (_, __) => 8.height,
|
|
padding: EdgeInsets.zero,
|
|
shrinkWrap: true,
|
|
physics: const NeverScrollableScrollPhysics(),
|
|
itemBuilder: (listContext, itemIndex) {
|
|
return AssetDeliveryTableCard(
|
|
deliveryDetails: AssetInventoryModel(),
|
|
onCardTap: () {
|
|
///TODO need to display bottomsheet to change status if new...
|
|
// if(status=='NEW')
|
|
// AssetDeliveryBottomSheet.changeStatusBottomSheet(context: context);
|
|
Navigator.of(context).push(MaterialPageRoute(builder: (_) => AssetDeliveryDetailPage(requestId: 13,)));
|
|
},
|
|
onViewHistoryPress: () {},
|
|
);
|
|
},
|
|
),
|
|
],
|
|
);
|
|
}
|
|
}
|