Commit ab387a28 authored by Jasa Digital's avatar Jasa Digital

overflow fixed viewbill dan konfirmasi page

parent 8148fb6c
...@@ -14,6 +14,7 @@ import '../../helper/widget/modal_input_name.dart'; ...@@ -14,6 +14,7 @@ import '../../helper/widget/modal_input_name.dart';
import '../../helper/widget/note_modal_bottom_sheet.dart'; import '../../helper/widget/note_modal_bottom_sheet.dart';
import '../../main.dart'; import '../../main.dart';
import '../../models/filter_menu.dart'; import '../../models/filter_menu.dart';
import '../../models/order_details.dart';
import '../../models/orders.dart'; import '../../models/orders.dart';
import '../checkout/fuction.dart'; import '../checkout/fuction.dart';
import 'app_bar_confirm.dart'; import 'app_bar_confirm.dart';
...@@ -42,6 +43,8 @@ class CoreConfirm extends StatelessWidget { ...@@ -42,6 +43,8 @@ class CoreConfirm extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
double widthScreen = responsiveWidthScreen(context); double widthScreen = responsiveWidthScreen(context);
double widthRowForNote =
MediaQuery.of(context).size.width - 20 - 12 - 80 - 20;
return BlocBuilder<OrdersBloc, List<Orders>>( return BlocBuilder<OrdersBloc, List<Orders>>(
builder: (context, listOrders) { builder: (context, listOrders) {
int totalHarga = 0; int totalHarga = 0;
...@@ -131,6 +134,7 @@ class CoreConfirm extends StatelessWidget { ...@@ -131,6 +134,7 @@ class CoreConfirm extends StatelessWidget {
i, i,
context, context,
indexAdaVariant, indexAdaVariant,
widthRowForNote,
), ),
), ),
for (int j in indexTidakAdaVariant) for (int j in indexTidakAdaVariant)
...@@ -172,12 +176,15 @@ class CoreConfirm extends StatelessWidget { ...@@ -172,12 +176,15 @@ class CoreConfirm extends StatelessWidget {
mainAxisAlignment: mainAxisAlignment:
MainAxisAlignment.center, MainAxisAlignment.center,
children: [ children: [
defaultText( Container(
context, width: widthRowForNote,
listOrders[j].namaMenu, child: defaultText(
maxLines: 2, context,
overFlow: TextOverflow.ellipsis, listOrders[j].namaMenu,
style: menuNameListViewBill(), maxLines: 2,
overFlow: TextOverflow.ellipsis,
style: menuNameListViewBill(),
),
), ),
const SizedBox( const SizedBox(
height: 6, height: 6,
...@@ -194,15 +201,19 @@ class CoreConfirm extends StatelessWidget { ...@@ -194,15 +201,19 @@ class CoreConfirm extends StatelessWidget {
height: 6, height: 6,
), ),
(listOrders[j].note != '') (listOrders[j].note != '')
? defaultText( ? Container(
context, width: widthRowForNote,
"Catatan: ${listOrders[j].note}", child: defaultText(
maxLines: 2, context,
overFlow: "Catatan: ${listOrders[j].note}",
TextOverflow.ellipsis, // maxLines: 2,
style: viewbillStyle( // overFlow:
font: 12, // TextOverflow.ellipsis,
fontWeight: FontWeight.w300, style: viewbillStyle(
font: 12,
fontWeight:
FontWeight.w300,
),
), ),
) )
: const SizedBox(), : const SizedBox(),
...@@ -748,8 +759,13 @@ class CoreConfirm extends StatelessWidget { ...@@ -748,8 +759,13 @@ class CoreConfirm extends StatelessWidget {
); );
} }
Column listWithVariant(List<Orders> listOrders, i, BuildContext context, Column listWithVariant(
List<dynamic> indexAdaVariant) { List<Orders> listOrders,
i,
BuildContext context,
List<dynamic> indexAdaVariant,
double widthRowForNote,
) {
// dippecah lagi masing2 indexnya // dippecah lagi masing2 indexnya
int indexOrder = int.parse(i.split('|')[0]); int indexOrder = int.parse(i.split('|')[0]);
int indexOrderDetail = int.parse(i.split('|')[1]); int indexOrderDetail = int.parse(i.split('|')[1]);
...@@ -819,12 +835,15 @@ class CoreConfirm extends StatelessWidget { ...@@ -819,12 +835,15 @@ class CoreConfirm extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
children: [ children: [
defaultText( Container(
context, width: widthRowForNote,
listOrders[indexOrder].namaMenu, child: defaultText(
maxLines: 2, context,
overFlow: TextOverflow.ellipsis, listOrders[indexOrder].namaMenu,
style: menuNameListViewBill(), // maxLines: 2,
// overFlow: TextOverflow.ellipsis,
style: menuNameListViewBill(),
),
), ),
const SizedBox( const SizedBox(
height: 6, height: 6,
...@@ -840,19 +859,6 @@ class CoreConfirm extends StatelessWidget { ...@@ -840,19 +859,6 @@ class CoreConfirm extends StatelessWidget {
const SizedBox( const SizedBox(
height: 6, height: 6,
), ),
(listOrders[indexOrder].orderDetail[indexOrderDetail].note !=
'')
? defaultText(
context,
"Catatan: ${listOrders[indexOrder].orderDetail[indexOrderDetail].note}",
maxLines: 2,
overFlow: TextOverflow.ellipsis,
style: viewbillStyle(
font: 12,
fontWeight: FontWeight.w300,
),
)
: const SizedBox(),
for (int a = 0; a < variantCaption.length; a++) for (int a = 0; a < variantCaption.length; a++)
if (variantCaption[a] != '') if (variantCaption[a] != '')
// defaultText( // defaultText(
...@@ -870,31 +876,281 @@ class CoreConfirm extends StatelessWidget { ...@@ -870,31 +876,281 @@ class CoreConfirm extends StatelessWidget {
// FontWeight.w300, // FontWeight.w300,
// ), // ),
// ), // ),
Row( Container(
children: [ width: widthRowForNote,
defaultText( child: Row(
children: [
defaultText(
context,
"${variantCaption[a]} : ",
// maxLines: 2,
// overFlow: TextOverflow.ellipsis,
style: viewbillStyle(
font: 12,
fontWeight: FontWeight.w300,
),
),
defaultText(
context,
variantName[a],
// maxLines: 2,
// overFlow: TextOverflow.ellipsis,
style: viewbillStyle(
font: 12,
fontWeight: FontWeight.w300,
),
),
],
),
),
(listOrders[indexOrder].orderDetail[indexOrderDetail].note !=
'')
? Container(
width: widthRowForNote,
child: defaultText(
context, context,
"${variantCaption[a]} : ", "Catatan: ${listOrders[indexOrder].orderDetail[indexOrderDetail].note}",
maxLines: 2, // maxLines: 2,
overFlow: TextOverflow.ellipsis, // overFlow: TextOverflow.ellipsis,
style: viewbillStyle( style: viewbillStyle(
font: 12, font: 12,
fontWeight: FontWeight.w300, fontWeight: FontWeight.w300,
), ),
), ),
defaultText( )
: const SizedBox(),
],
)
],
),
),
Container(
width: double.infinity,
color: backgroundWhite,
padding: const EdgeInsets.only(
left: paddingLeftRight,
right: paddingLeftRight,
bottom: 10,
),
child: Row(
children: [
GestureDetector(
onTap: () {
final noteController = TextEditingController(
text: listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.note);
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
}
showModalBottomSheet(
backgroundColor: backgroundColor,
isScrollControlled: true,
context: context,
builder: (context) {
return NoteModalBottomSheet(
noteController: noteController,
initialValue: listOrders[indexOrder].totalItem,
orderVariants: const [],
menuItem: FilterMenu(
id: '',
name: '',
price: '',
originalPrice: '',
imageUrlMedium: '',
imageUrlThumbnail: '',
isSell: false,
type: 1,
categoryName: '',
categoryId: '',
description: '',
groupName: '',
groupId: '',
),
lisrOrders: listOrders,
from: fromConfirmationPage,
contextFrom: context,
idMenu: listOrders[indexOrder].id,
menuName: listOrders[indexOrder].namaMenu,
priceMemu: listOrders[indexOrder].satuanHarga,
imageUrl: listOrders[indexOrder].imageUrl,
);
},
);
},
child: Container(
height: 30,
width: 98,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(21),
color: buttonColor),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const Image(
height: 16,
width: 16,
image: AssetImage('assets/icons/note.png'),
),
const SizedBox(
width: 10,
),
Container(
height: 16,
child: Center(
child: defaultText(
context, context,
variantName[a], (listOrders[indexOrder].note != '')
maxLines: 2, ? 'Ubah'
overFlow: TextOverflow.ellipsis, : 'Catatan',
style: viewbillStyle( style: noteViewBill(
font: 12, color: textInButton,
fontWeight: FontWeight.w300,
), ),
), ),
], ),
) )
],
),
),
),
const Spacer(),
Stack(
children: [
Container(
width: 94,
height: 22,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(30),
color: backgroundColor,
),
child: Center(
child: defaultText(
context,
listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.totalItem
.toString(),
style: amountViewBillButton(),
),
),
),
Positioned(
left: 0,
child: GestureDetector(
onTap: () {
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
}
int totalHarga = listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.totalHarga
.toInt();
int totalItem = listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.totalItem
.toInt();
int satuanHarga = totalHarga ~/ totalItem;
OrderDetail orderDetailNow = OrderDetail(
allIdVariant: listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.allIdVariant,
totalItem: listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.totalItem -
1,
totalHarga: listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.totalHarga -
satuanHarga,
note: listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.note,
orderVariant: listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.orderVariant,
);
Map<String, dynamic> insertData = {
'action': 'editVariant',
'list_orders': listOrders,
'single_order_detail': orderDetailNow,
};
context.read<OrdersBloc>().insertData(insertData);
},
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: () {
FocusScopeNode currentFocus = FocusScope.of(context);
if (!currentFocus.hasPrimaryFocus) {
currentFocus.unfocus();
}
int totalHarga = listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.totalHarga
.toInt();
int totalItem = listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.totalItem
.toInt();
int satuanHarga = totalHarga ~/ totalItem;
OrderDetail orderDetailNow = OrderDetail(
allIdVariant: listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.allIdVariant,
totalItem: listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.totalItem +
1,
totalHarga: listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.totalHarga +
satuanHarga,
note: listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.note,
orderVariant: listOrders[indexOrder]
.orderDetail[indexOrderDetail]
.orderVariant,
);
Map<String, dynamic> insertData = {
'action': 'editVariant',
'list_orders': listOrders,
'single_order_detail': orderDetailNow,
};
context.read<OrdersBloc>().insertData(insertData);
},
child: Container(
width: 22,
height: 22,
child: Image(
image: AssetImage((isExcelso)
? 'assets/icons/plus-gold.png'
: 'assets/icons/plus.png'),
),
),
),
)
], ],
),
const SizedBox(
width: 12,
) )
], ],
), ),
......
...@@ -214,40 +214,54 @@ class _OrderViewBillNewState extends State<OrderViewBillNew> { ...@@ -214,40 +214,54 @@ class _OrderViewBillNewState extends State<OrderViewBillNew> {
fontWeight: FontWeight.w300, fontWeight: FontWeight.w300,
), ),
), ),
(widget.billDetail.variant.isNotEmpty) for (int k = 0;
? Column( k < widget.billDetail.variant.length;
crossAxisAlignment: k++)
CrossAxisAlignment.start, // Container(
mainAxisSize: MainAxisSize.min, // width: MediaQuery.of(context).size.width -
children: [ // paddingLeftRightBill -
for (int k = 0; // paddingLeftRightBill -
k < widget.billDetail.variant.length; // 88, // 88 itu besar image dan space sized box pemisah
k++) // color: Colors.red,
Row( // child: Row(
mainAxisAlignment: // mainAxisAlignment: MainAxisAlignment.start,
MainAxisAlignment.start, // children: [
children: [ // defaultText(
defaultText( // context,
context, // "${widget.billDetail.variant[k].caption} : ",
"${widget.billDetail.variant[k].caption} : ", // style: viewbillStyle(
style: viewbillStyle( // font: 12,
font: 12, // fontWeight: FontWeight.w300,
fontWeight: FontWeight.w300, // ),
), // ),
), // defaultText(
defaultText( // context,
context, // widget.billDetail.variant[k].variantName
widget.billDetail.variant[k].variantName.join(', '), // .join(', '),
style: viewbillStyle( // style: viewbillStyle(
font: 12, // font: 12,
fontWeight: FontWeight.w300, // fontWeight: FontWeight.w300,
), // ),
) // )
], // ],
) // ),
], // ),
) Container(
: const SizedBox(), width: MediaQuery.of(context).size.width -
paddingLeftRightBill -
paddingLeftRightBill -
88,
child: defaultText(
context,
"${widget.billDetail.variant[k].caption} : ${widget.billDetail.variant[k].variantName.join(', ')}",
// maxLines: 2,
// overFlow: TextOverflow.ellipsis,
style: viewbillStyle(
font: 12,
fontWeight: FontWeight.w300,
),
),
),
const SizedBox( const SizedBox(
height: 6, height: 6,
), ),
......
...@@ -1107,9 +1107,11 @@ class CoreBill extends StatelessWidget { ...@@ -1107,9 +1107,11 @@ class CoreBill extends StatelessWidget {
// ); // );
// } // }
}, },
child: const ButtonComponent( child: ButtonComponent(
buttonColor: successColor, buttonColor: successColor,
teksButton: 'Buat Pesanan Baru', teksButton: (isHistory)
? 'Kembali'
: 'Buat Pesanan Baru',
), ),
), ),
], ],
......
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