Commit c7a0b437 authored by Dio Maulana's avatar Dio Maulana

s

parent c2f92bb8
...@@ -33,6 +33,7 @@ class OrdersBloc extends Cubit<List<Orders>> { ...@@ -33,6 +33,7 @@ class OrdersBloc extends Cubit<List<Orders>> {
listOrders.removeAt(indexListOrder); listOrders.removeAt(indexListOrder);
} }
} }
emit(listOrders); emit(listOrders);
} else { } else {
var listOrderOld = json['old_order']; // orderan lama var listOrderOld = json['old_order']; // orderan lama
......
...@@ -11,4 +11,8 @@ class OrderVariantTemporaryBloc extends Cubit<List<dynamic>> { ...@@ -11,4 +11,8 @@ class OrderVariantTemporaryBloc extends Cubit<List<dynamic>> {
emit(temporaryVariant); emit(temporaryVariant);
} }
void clearDataVariant() {
emit([]);
}
} }
// ignore_for_file: must_be_immutable // ignore_for_file: must_be_immutable, sized_box_for_whitespace
import 'package:byod/helper/widget/plus_minus_button.dart'; import 'package:byod/helper/widget/plus_minus_button.dart';
import 'package:byod/helper/widget/style.dart'; import 'package:byod/helper/widget/style.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import '../../bloc/order_bloc.dart';
import '../../bloc/order_detail_variant.dart';
import '../../bloc/order_variant_temporary.dart';
import '../../helper/helper.dart'; import '../../helper/helper.dart';
import '../../helper/widget/button_modal.dart'; import '../../helper/widget/button_modal.dart';
import '../../main.dart';
import '../../models/order_details.dart';
import '../../models/orders.dart'; import '../../models/orders.dart';
import '../../models/variant_categories.dart'; import '../../models/variant_categories.dart';
import 'variant_cat_new.dart';
class CustomizeVariantNew extends StatelessWidget { class CustomizeVariantNew extends StatefulWidget {
CustomizeVariantNew({ CustomizeVariantNew({
super.key, super.key,
required this.orders, required this.orders,
...@@ -19,14 +26,17 @@ class CustomizeVariantNew extends StatelessWidget { ...@@ -19,14 +26,17 @@ class CustomizeVariantNew extends StatelessWidget {
Orders orders; Orders orders;
List<VariantCategories> variantCat; List<VariantCategories> variantCat;
@override
State<CustomizeVariantNew> createState() => _CustomizeVariantNewState();
}
class _CustomizeVariantNewState extends State<CustomizeVariantNew> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
void minus() {}
void plus() {}
double widthScreen = responsiveWidthScreen(context); double widthScreen = responsiveWidthScreen(context);
return Container( return Container(
// width: widthScreen, // width: widthScreen,
height: MediaQuery.of(context).size.height * 0.8, height: MediaQuery.of(context).size.height * 0.7,
decoration: const BoxDecoration( decoration: const BoxDecoration(
borderRadius: BorderRadius.only( borderRadius: BorderRadius.only(
topLeft: Radius.circular(19), topLeft: Radius.circular(19),
...@@ -34,10 +44,18 @@ class CustomizeVariantNew extends StatelessWidget { ...@@ -34,10 +44,18 @@ class CustomizeVariantNew extends StatelessWidget {
), ),
color: backgroundWhite, color: backgroundWhite,
), ),
child: Stack( child: BlocBuilder<OrdersBloc, List<Orders>>(
builder: (context, listCurrentOrder) {
int indexOrders =
listCurrentOrder.indexWhere((value) => value == widget.orders);
if (indexOrders == -1) {
Navigator.pop(context);
}
return Stack(
children: [ children: [
Container( Container(
padding: const EdgeInsets.symmetric(horizontal: paddingLeftRight), padding:
const EdgeInsets.symmetric(horizontal: paddingLeftRight),
child: Column( child: Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
...@@ -60,7 +78,7 @@ class CustomizeVariantNew extends StatelessWidget { ...@@ -60,7 +78,7 @@ class CustomizeVariantNew extends StatelessWidget {
), ),
defaultText( defaultText(
context, context,
'Nasi Ayam Kecap + Telur', widget.orders.namaMenu,
maxLines: 2, maxLines: 2,
overFlow: TextOverflow.ellipsis, overFlow: TextOverflow.ellipsis,
style: textStyleVariantModal( style: textStyleVariantModal(
...@@ -73,25 +91,35 @@ class CustomizeVariantNew extends StatelessWidget { ...@@ -73,25 +91,35 @@ class CustomizeVariantNew extends StatelessWidget {
), ),
Expanded( Expanded(
child: ListView.builder( child: ListView.builder(
itemCount: 10, itemCount: widget.orders.orderDetail.length,
itemBuilder: (context, i) { itemBuilder: (context, i) {
int totalHarga =
widget.orders.orderDetail[i].totalHarga.toInt();
int totalItem =
widget.orders.orderDetail[i].totalItem.toInt();
int satuanHarga = totalHarga ~/ totalItem;
return Column( return Column(
children: [ children: [
Row( Row(
crossAxisAlignment: CrossAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [ children: [
Column( Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment:
CrossAxisAlignment.start,
children: [ children: [
Container( Container(
padding: const EdgeInsets.only(bottom: 8), padding:
const EdgeInsets.only(bottom: 8),
child: defaultText( child: defaultText(
context, context,
'2 X 25,000', "Rp ${formatNumber().format(widget.orders.orderDetail[i].totalHarga)}",
maxLines: 1, maxLines: 1,
overFlow: TextOverflow.ellipsis, overFlow: TextOverflow.ellipsis,
style: textStyleVariantModal(), style: textStyleVariantModal(
fontWeight: FontWeight.w600,
),
), ),
), ),
Column( Column(
...@@ -99,48 +127,206 @@ class CustomizeVariantNew extends StatelessWidget { ...@@ -99,48 +127,206 @@ class CustomizeVariantNew extends StatelessWidget {
crossAxisAlignment: crossAxisAlignment:
CrossAxisAlignment.start, CrossAxisAlignment.start,
children: [ children: [
for (int d = 0; d < 3; d++) for (int d = 0;
d <
widget.orders.orderDetail[i]
.orderVariant.length;
d++)
defaultText( defaultText(
context, context,
'Pedas ke $d', widget.orders.orderDetail[i]
.orderVariant[d].name,
maxLines: 1, maxLines: 1,
overFlow: TextOverflow.ellipsis, overFlow: TextOverflow.ellipsis,
) )
], ],
), ),
Container( (widget.orders.orderDetail[i].note !=
'')
? Container(
padding: const EdgeInsets.only( padding: const EdgeInsets.only(
bottom: 8, bottom: 8,
top: 8, top: 8,
), ),
child: defaultText( child: defaultText(
context, context,
'Catatan: catatan....', 'Catatan: ${widget.orders.orderDetail[i].note}',
maxLines: 3, maxLines: 3,
overFlow: TextOverflow.ellipsis, overFlow:
style: textStyleVariantModal(), TextOverflow.ellipsis,
), style:
textStyleVariantModal(),
), ),
)
: const SizedBox()
], ],
), ),
PlusMinusButton( Stack(
initialValue: 1, children: [
minus: minus, Container(
plus: plus, width: 94,
height: 22,
decoration: BoxDecoration(
borderRadius:
BorderRadius.circular(30),
color: backgroundColor,
),
child: Center(
child: defaultText(
context,
widget.orders.orderDetail[i]
.totalItem
.toString(),
style: amountViewBillButton(),
),
),
),
Positioned(
left: 0,
child: GestureDetector(
onTap: () {
OrderDetail orderDetailNow =
OrderDetail(
allIdVariant: widget
.orders
.orderDetail[i]
.allIdVariant,
totalItem: widget
.orders
.orderDetail[i]
.totalItem -
1,
totalHarga: widget
.orders
.orderDetail[i]
.totalHarga -
satuanHarga,
note: widget
.orders.orderDetail[i].note,
orderVariant: widget
.orders
.orderDetail[i]
.orderVariant,
);
Map<String, dynamic> insertData =
{
'action': 'editVariant',
'list_orders': listCurrentOrder,
'single_order_detail':
orderDetailNow,
};
context
.read<OrdersBloc>()
.insertData(insertData);
setState(() {});
},
child: Container(
width: 22,
height: 22,
child: Image(
image: AssetImage((isExcelso)
? 'assets/icons/minus-gold.png'
: 'assets/icons/minus-blue.png'),
),
),
),
),
Positioned(
right: 0,
child: GestureDetector(
onTap: () {
OrderDetail orderDetailNow =
OrderDetail(
allIdVariant: widget
.orders
.orderDetail[i]
.allIdVariant,
totalItem: widget
.orders
.orderDetail[i]
.totalItem +
1,
totalHarga: widget
.orders
.orderDetail[i]
.totalHarga +
satuanHarga,
note: widget
.orders.orderDetail[i].note,
orderVariant: widget
.orders
.orderDetail[i]
.orderVariant,
);
Map<String, dynamic> insertData =
{
'action': 'editVariant',
'list_orders': listCurrentOrder,
'single_order_detail':
orderDetailNow,
};
context
.read<OrdersBloc>()
.insertData(insertData);
setState(() {});
// context
// .read<OrderDetailVariant>()
// .orderDetail(
// orders.orderDetail[i]
// .allIdVariant,
// orders.orderDetail[i]
// .totalItem +
// 1,
// orders.orderDetail[i]
// .totalHarga +
// satuanHarga,
// orders
// .orderDetail[i].note,
// orders.orderDetail[i]
// .orderVariant,
// context,
// orders,
// listCurrentOrder);
// orders.orderDetail[i].totalItem +
// 1;
// orders.orderDetail[i].totalHarga +
// satuanHarga;
},
child: Container(
width: 22,
height: 22,
child: Image(
image: AssetImage((isExcelso)
? 'assets/icons/plus-gold.png'
: 'assets/icons/plus.png'),
),
),
),
) )
], ],
), ),
],
),
const SizedBox( const SizedBox(
height: 12, height: 12,
), ),
const Divider( (i != widget.orders.orderDetail.length - 1)
? const Divider(
thickness: 1, thickness: 1,
height: 1, height: 1,
color: dividerGrey, color: dividerGrey,
), )
const SizedBox( : const SizedBox(),
(i != widget.orders.orderDetail.length - 1)
? const SizedBox(
height: 16, height: 16,
), )
: const SizedBox(),
(i == widget.orders.orderDetail.length - 1)
? const SizedBox(
height: 65,
)
: const SizedBox()
], ],
); );
}), }),
...@@ -151,9 +337,34 @@ class CustomizeVariantNew extends StatelessWidget { ...@@ -151,9 +337,34 @@ class CustomizeVariantNew extends StatelessWidget {
Positioned( Positioned(
bottom: 0, bottom: 0,
child: Container( child: Container(
padding: const EdgeInsets.symmetric(horizontal: paddingLeftRight), height: 59,
height: 43,
width: MediaQuery.of(context).size.width, width: MediaQuery.of(context).size.width,
padding: const EdgeInsets.only(
left: paddingLeftRight,
right: paddingLeftRight,
bottom: 16,
),
color: backgroundWhite,
child: GestureDetector(
onTap: () {
Navigator.pop(context);
Navigator.push(
context,
MaterialPageRoute(
builder: (_) => VariantCatNew(
initPrice: widget.orders.satuanHarga,
variantCategories: widget.variantCat,
namaMenu: widget.orders.namaMenu,
idItem: widget.orders.id,
imageUrl: widget.orders.imageUrl,
listCurrentOrder: listCurrentOrder,
),
),
);
},
child: Container(
height: 43,
width: double.infinity,
decoration: BoxDecoration( decoration: BoxDecoration(
color: buttonColor, color: buttonColor,
borderRadius: BorderRadius.circular(48), borderRadius: BorderRadius.circular(48),
...@@ -166,8 +377,12 @@ class CustomizeVariantNew extends StatelessWidget { ...@@ -166,8 +377,12 @@ class CustomizeVariantNew extends StatelessWidget {
), ),
), ),
), ),
),
),
) )
], ],
);
},
), ),
); );
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment