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,140 +44,345 @@ class CustomizeVariantNew extends StatelessWidget { ...@@ -34,140 +44,345 @@ class CustomizeVariantNew extends StatelessWidget {
), ),
color: backgroundWhite, color: backgroundWhite,
), ),
child: Stack( child: BlocBuilder<OrdersBloc, List<Orders>>(
children: [ builder: (context, listCurrentOrder) {
Container( int indexOrders =
padding: const EdgeInsets.symmetric(horizontal: paddingLeftRight), listCurrentOrder.indexWhere((value) => value == widget.orders);
child: Column( if (indexOrders == -1) {
mainAxisSize: MainAxisSize.min, Navigator.pop(context);
crossAxisAlignment: CrossAxisAlignment.start, }
children: [ return Stack(
const SizedBox( children: [
height: 8, Container(
), padding:
Center( const EdgeInsets.symmetric(horizontal: paddingLeftRight),
child: Container( child: Column(
width: 50, mainAxisSize: MainAxisSize.min,
height: 3, crossAxisAlignment: CrossAxisAlignment.start,
decoration: BoxDecoration( children: [
borderRadius: BorderRadius.circular(7), const SizedBox(
color: disabledColor, height: 8,
), ),
), Center(
), child: Container(
const SizedBox( width: 50,
height: 28, height: 3,
), decoration: BoxDecoration(
defaultText( borderRadius: BorderRadius.circular(7),
context, color: disabledColor,
'Nasi Ayam Kecap + Telur', ),
maxLines: 2, ),
overFlow: TextOverflow.ellipsis, ),
style: textStyleVariantModal( const SizedBox(
font: 20, height: 28,
fontWeight: FontWeight.w600, ),
), defaultText(
), context,
const SizedBox( widget.orders.namaMenu,
height: 12, maxLines: 2,
), overFlow: TextOverflow.ellipsis,
Expanded( style: textStyleVariantModal(
child: ListView.builder( font: 20,
itemCount: 10, fontWeight: FontWeight.w600,
itemBuilder: (context, i) { ),
return Column( ),
children: [ const SizedBox(
Row( height: 12,
crossAxisAlignment: CrossAxisAlignment.end, ),
mainAxisAlignment: MainAxisAlignment.spaceBetween, Expanded(
child: ListView.builder(
itemCount: widget.orders.orderDetail.length,
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(
children: [ children: [
Column( Row(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.end,
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
children: [ children: [
Container(
padding: const EdgeInsets.only(bottom: 8),
child: defaultText(
context,
'2 X 25,000',
maxLines: 1,
overFlow: TextOverflow.ellipsis,
style: textStyleVariantModal(),
),
),
Column( Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: crossAxisAlignment:
CrossAxisAlignment.start, CrossAxisAlignment.start,
children: [ children: [
for (int d = 0; d < 3; d++) Container(
defaultText( padding:
const EdgeInsets.only(bottom: 8),
child: defaultText(
context, context,
'Pedas ke $d', "Rp ${formatNumber().format(widget.orders.orderDetail[i].totalHarga)}",
maxLines: 1, maxLines: 1,
overFlow: TextOverflow.ellipsis, overFlow: TextOverflow.ellipsis,
) style: textStyleVariantModal(
fontWeight: FontWeight.w600,
),
),
),
Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
for (int d = 0;
d <
widget.orders.orderDetail[i]
.orderVariant.length;
d++)
defaultText(
context,
widget.orders.orderDetail[i]
.orderVariant[d].name,
maxLines: 1,
overFlow: TextOverflow.ellipsis,
)
],
),
(widget.orders.orderDetail[i].note !=
'')
? Container(
padding: const EdgeInsets.only(
bottom: 8,
top: 8,
),
child: defaultText(
context,
'Catatan: ${widget.orders.orderDetail[i].note}',
maxLines: 3,
overFlow:
TextOverflow.ellipsis,
style:
textStyleVariantModal(),
),
)
: const SizedBox()
], ],
), ),
Container( Stack(
padding: const EdgeInsets.only( children: [
bottom: 8, Container(
top: 8, width: 94,
), height: 22,
child: defaultText( decoration: BoxDecoration(
context, borderRadius:
'Catatan: catatan....', BorderRadius.circular(30),
maxLines: 3, color: backgroundColor,
overFlow: TextOverflow.ellipsis, ),
style: textStyleVariantModal(), 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'),
),
),
),
)
],
), ),
], ],
), ),
PlusMinusButton( const SizedBox(
initialValue: 1, height: 12,
minus: minus, ),
plus: plus, (i != widget.orders.orderDetail.length - 1)
) ? const Divider(
thickness: 1,
height: 1,
color: dividerGrey,
)
: const SizedBox(),
(i != widget.orders.orderDetail.length - 1)
? const SizedBox(
height: 16,
)
: const SizedBox(),
(i == widget.orders.orderDetail.length - 1)
? const SizedBox(
height: 65,
)
: const SizedBox()
], ],
), );
const SizedBox( }),
height: 12, )
), ],
const Divider(
thickness: 1,
height: 1,
color: dividerGrey,
),
const SizedBox(
height: 16,
),
],
);
}),
)
],
),
),
Positioned(
bottom: 0,
child: Container(
padding: const EdgeInsets.symmetric(horizontal: paddingLeftRight),
height: 43,
width: MediaQuery.of(context).size.width,
decoration: BoxDecoration(
color: buttonColor,
borderRadius: BorderRadius.circular(48),
),
child: Center(
child: defaultText(
context,
'Tambah Variant',
style: addButton(),
), ),
), ),
), Positioned(
) bottom: 0,
], child: Container(
height: 59,
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(
color: buttonColor,
borderRadius: BorderRadius.circular(48),
),
child: Center(
child: defaultText(
context,
'Tambah Variant',
style: addButton(),
),
),
),
),
),
)
],
);
},
), ),
); );
} }
......
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