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 createState() => _AssetDeliveryPageState(); } class _AssetDeliveryPageState extends State { @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: () {}, ); }, ), ], ); } }