import 'package:flutter/material.dart'; import 'package:teso/Classes/API Clasess/CouponDetails.dart'; import 'package:teso/util/consts.dart'; buildPersonalizedDiscountCoupon( BuildContext context, CouponDetails coupon, Function acquiring) { return Container( width: MediaQuery.of(context).size.width * 0.70, height: MediaQuery.of(context).size.height * 0.75, //color: Colors.black, margin: EdgeInsets.only( left: MediaQuery.of(context).size.width * 0.1, ), child: ClipRRect( borderRadius: BorderRadius.only( topLeft: Radius.circular(30), topRight: Radius.circular(30), ), child: Column( children: [ Container( width: MediaQuery.of(context).size.width * 0.70, height: MediaQuery.of(context).size.height * 0.68, decoration: BoxDecoration( borderRadius: BorderRadius.only( bottomLeft: Radius.circular(30), bottomRight: Radius.circular(30), topLeft: Radius.circular(30), topRight: Radius.circular(30), ), color: Colors.white, ), child: Column( children: [ Container( width: MediaQuery.of(context).size.width * 0.70, height: MediaQuery.of(context).size.height * 0.55, padding: EdgeInsets.all(8.0), decoration: BoxDecoration( color: Colors.white, image: coupon.upperLimit! < 50.1 ? DecorationImage( fit: BoxFit.fill, image: AssetImage("assets/images/blue.png"), colorFilter: new ColorFilter.mode( Color(0xFF0031ed).withOpacity(1.0), BlendMode.multiply), ) : DecorationImage( fit: BoxFit.fill, image: AssetImage("assets/images/redBack.png"), colorFilter: new ColorFilter.mode( Colors.red.withOpacity(1.0), BlendMode.multiply), ), borderRadius: BorderRadius.only( bottomLeft: Radius.circular(80), bottomRight: Radius.circular(80), ), ), child: Stack( children: [ Align( alignment: Alignment.topLeft, child: Row( children: [ Image( width: 30, image: AssetImage( "assets/images/tesoCouponInsignia.png")), SizedBox( width: 5, ), Text( "TESO", style: TextStyle(color: Colors.white, fontSize: 15), ), ], ), ), Align( alignment: Alignment.topCenter, child: Container( margin: EdgeInsets.only( top: MediaQuery.of(context).size.width * 0.125, ), child: Column( children: [ Text( coupon.issuer!.businessName!.toUpperCase(), style: TextStyle( color: Colors.white, fontSize: 18, fontWeight: FontWeight.w700, ), ), Container( width: double.infinity, margin: EdgeInsets.symmetric( vertical: 10, ), child: Center( child: Text( "VOUCHER", textAlign: TextAlign.center, style: TextStyle( color: Colors.white, fontSize: 25, fontWeight: FontWeight.w900, ), ), ), ), ], ), ), ), Align( alignment: Alignment.center, child: Container( height: MediaQuery.of(context).size.width * 0.18, padding: EdgeInsets.all(5), decoration: BoxDecoration( border: Border.all(color: Colors.white)), child: Column( children: [ Text( "ORIGINAL PRICE : GH¢ " + coupon.targetProduct!.unitPrice.toString(), style: TextStyle( color: Colors.white, fontWeight: FontWeight.bold, ), ), Text( "DISCOUNTED PRICE : GH¢ " + (coupon.targetProduct!.unitPrice!- (coupon.targetProduct!.unitPrice! * (coupon.lowerLimit! / 100))) .toStringAsFixed(2), style: TextStyle( color: Colors.white, fontWeight: FontWeight.bold, ), ), ], ), ), ), Align( alignment: Alignment.bottomCenter, child: Container( margin: EdgeInsets.symmetric( vertical: MediaQuery.of(context).size.width * 0.15), child: Text( coupon.targetProduct!.productName!.toUpperCase(), textAlign: TextAlign.center, style: TextStyle( color: Colors.white, fontSize: 20, fontWeight: FontWeight.bold, ), ), ), ), ], ), ), Container( padding: EdgeInsets.symmetric( horizontal: MediaQuery.of(context).size.width * 0.025, ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Container( width: MediaQuery.of(context).size.width * 0.4, height: 70, padding: EdgeInsets.only( top: 5, ), child: SingleChildScrollView( scrollDirection: Axis.vertical, child: Column( children: [ Container( child: Text( "Pay : GH¢ " + (coupon.targetProduct!.unitPrice!- (coupon.targetProduct!.unitPrice! * (coupon.lowerLimit! / 100))) .toStringAsFixed(2) + " only", style: TextStyle( color: Colors.red, fontWeight: FontWeight.bold, ), ), ), coupon.condition == 'none' ? Container() : Container( child: Text( "Condition : " + coupon.condition!, ), ), ], ), ), ), Container( width: 65, height: 65, padding: EdgeInsets.all(2.5), decoration: BoxDecoration( border: Border.all( color: Colors.red, ), borderRadius: BorderRadius.only( topLeft: Radius.circular(80), topRight: Radius.circular(80), bottomLeft: Radius.circular(80), bottomRight: Radius.circular(80), ), ), child: Container( width: 65, height: 65, padding: EdgeInsets.all(2.5), decoration: BoxDecoration( shape: BoxShape.circle, color: Colors.red, border: Border.all(color: Colors.red), image: DecorationImage( fit: BoxFit.fill, image: AssetImage("assets/images/red.png"), colorFilter: new ColorFilter.mode( Colors.red.withOpacity(0.5), BlendMode.overlay), ), ), child: Center( child: Wrap( children: [ Text( coupon.lowerLimit.toString() + "%", style: TextStyle( color: Colors.white, fontSize: 18.5, fontWeight: FontWeight.bold, ), ), Container( margin: EdgeInsets.only( left: 22, ), child: Text( "OFF", textAlign: TextAlign.end, style: TextStyle( color: Colors.white, fontWeight: FontWeight.w900, ), ), ), ], ), ), ), ), ], ), ), ], ), ), Container( margin: EdgeInsets.symmetric( vertical: MediaQuery.of(context).size.width * 0.03, ), child: ElevatedButton( style: ElevatedButton.styleFrom( primary: coupon.upperLimit! < 50.1 ? tesoBlue : Colors.red, ), onPressed: acquiring as void Function()?, child: Text( "Accept Coupon", style: TextStyle(color: Colors.white), ), ), ), ], ), ), ); }