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.
PatientApp-KKUMC/lib/pages/packages_offers/packages_orders_history.dart

98 lines
3.5 KiB
Dart

import 'package:diplomaticquarterapp/core/model/packages_offers/responses/PackagesCartItemsResponseModel.dart';
import 'package:diplomaticquarterapp/core/model/packages_offers/responses/PackagesResponseModel.dart';
import 'package:diplomaticquarterapp/core/viewModels/packages_offers/PackagesOffersViewModel.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/Loader/gif_loader_container.dart';
import 'package:diplomaticquarterapp/widgets/dialogs/ConfirmWithMessageDialog.dart';
import 'package:diplomaticquarterapp/widgets/offers_packages/PackagesOrderHistoryItemCard.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'OfferAndPackageDetailPage.dart';
class PackagesOrdersHistory extends StatefulWidget{
@override
State<StatefulWidget> createState() => PackagesOrdersHistorySatate();
}
class PackagesOrdersHistorySatate extends State<PackagesOrdersHistory>{
ProjectViewModel projectViewModel;
PackagesViewModel packagesViewModel;
List<PackagesResponseModel> orders;
@override
void initState() {
Future.delayed(Duration(milliseconds: 200)).then((value) async{
final orders_ = await packagesViewModel.service.orderHistory(context: context);
setState(() => orders = orders_ ?? []);
});
}
@override
Widget build(BuildContext context) {
projectViewModel = Provider.of(context);
return BaseView<PackagesViewModel>(
allowAny: true,
onModelReady: (model) => packagesViewModel = model,
builder: (_, model, wi) {
return content(context);
}
);
}
Widget content(BuildContext context){
if(orders == null){
return SizedBox();
}else if(orders.isEmpty){
return getNoDataWidget(context);
}else {
return ListView.separated(
padding: EdgeInsets.all(20),
itemCount: orders.length,
itemBuilder: (ctx, idx) => item(ctx, order: orders[idx]),
separatorBuilder: (ctx, idx) => SizedBox(height: 10),
);
}
}
Widget item(BuildContext context, {@required PackagesResponseModel order}){
return InkWell(
child: PackagesOrderHistoryItemCard(itemModel: order, viewModel: packagesViewModel),
onTap: (){
final detailPage = OfferAndPackagesDetail(itemModel: order, onCartClick: null)..showAddToCartFooter = false;
Navigator.of(context).push(MaterialPageRoute(builder: (BuildContext context) => detailPage));
},
);
}
void showConfirmMessage(BuildContext context, {@required PackagesResponseModel order}){
showDialog(
context: context,
builder: (cxt) => ConfirmWithMessageDialog(
message: TranslationBase.of(context).cancelOrderMsg,
onTap: () {
},
),
);
return;
}
Color color(int status){
if (status == 1) { //pending
return Color(0xffCC9B14);
} else if (status == 2) { //processing
return Color(0xff2E303A);
} else if (status == 3) { //completed
return Color(0xff359846);
} else if (status == 4 || status == 6 || status == 7) { //cancel // Rejected
return Color(0xffD02127);
}
return Colors.transparent;
}
}