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.
98 lines
3.5 KiB
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;
|
|
}
|
|
} |