Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
B
Byodv2
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Dio Maulana
Byodv2
Commits
94c58a71
Commit
94c58a71
authored
Oct 17, 2022
by
Dio Maulana
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
17/10/22
parent
7a75e7bb
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
1575 additions
and
785 deletions
+1575
-785
api.dart
lib/api/api.dart
+34
-30
outlet_detail.dart
lib/bloc/outlet_detail.dart
+9
-0
helper.dart
lib/helper/helper.dart
+36
-3
mq.dart
lib/helper/mq.dart
+7
-7
prefs.dart
lib/helper/prefs.dart
+18
-0
emoticon_rate_new.dart
lib/helper/widget/emoticon_rate_new.dart
+2
-4
note_modal_bottom_sheet.dart
lib/helper/widget/note_modal_bottom_sheet.dart
+21
-0
main.dart
lib/main.dart
+2
-0
confirm_order.dart
lib/ui/confirm_order/confirm_order.dart
+225
-0
new_home2.dart
lib/ui/home/new_home2.dart
+69
-45
list_order.dart
lib/ui/viewbill/list_order.dart
+38
-16
order_view_bill_new.dart
lib/ui/viewbill/order_view_bill_new.dart
+82
-56
view_bill.dart
lib/ui/viewbill/view_bill.dart
+2
-1
view_bill_new.dart
lib/ui/viewbill/view_bill_new.dart
+1002
-595
app_bar_webview.dart
lib/ui/webview/app_bar_webview.dart
+28
-28
No files found.
lib/api/api.dart
View file @
94c58a71
...
@@ -75,7 +75,7 @@ class Api {
...
@@ -75,7 +75,7 @@ class Api {
if
(
indexTypeUrl
!=
-
1
)
{
if
(
indexTypeUrl
!=
-
1
)
{
currentOrderId
=
jsonDecode
(
listTypeUrl
[
indexTypeUrl
])[
'order_id'
];
currentOrderId
=
jsonDecode
(
listTypeUrl
[
indexTypeUrl
])[
'order_id'
];
}
else
{
}
else
{
currentOrderId
=
getOrderId
();
currentOrderId
=
getOrderId
();
}
}
var
uuidOrderId
=
uuidInit
.
v4
();
var
uuidOrderId
=
uuidInit
.
v4
();
String
orderID
;
String
orderID
;
...
@@ -100,6 +100,7 @@ class Api {
...
@@ -100,6 +100,7 @@ class Api {
:
''
,
:
''
,
"customer_lat"
:
latitude
,
"customer_lat"
:
latitude
,
"customer_long"
:
longitude
,
"customer_long"
:
longitude
,
"table_number"
:
(
getUrlType
()
==
typeUrlDua
)
?
getTabelNumber
()
:
''
,
"type_url"
:
urlType
,
"type_url"
:
urlType
,
};
};
var
bodies
=
json
.
encode
(
data
);
var
bodies
=
json
.
encode
(
data
);
...
@@ -110,32 +111,32 @@ class Api {
...
@@ -110,32 +111,32 @@ class Api {
if
(
jsonObject
!=
false
)
{
if
(
jsonObject
!=
false
)
{
if
(
jsonObject
[
'status'
].
toString
().
toLowerCase
()
==
'ok'
)
{
if
(
jsonObject
[
'status'
].
toString
().
toLowerCase
()
==
'ok'
)
{
//** save sessionID and Table Mode*/
//** save sessionID and Table Mode*/
List
<
String
>
listHistory
=
getListHistory
();
//
List<String> listHistory = getListHistory();
String
tableNumber
=
getTabelNumber
();
//
String tableNumber = getTabelNumber();
String
userName
=
getCustomerName
();
//
String userName = getCustomerName();
String
totalOrder
=
getTotalOrder
();
//
String totalOrder = getTotalOrder();
String
dateOrder
=
getOrderDate
();
//
String dateOrder = getOrderDate();
String
branchCode
=
getBranchPref
();
//
String branchCode = getBranchPref();
String
brandCode
=
getBrand
();
//
String brandCode = getBrand();
String
token
=
getToken
();
//
String token = getToken();
if
(
orderID
!=
jsonObject
[
'data'
][
'order_id'
])
{
//
if (orderID != jsonObject['data']['order_id']) {
Map
historyOrder
=
{
//
Map historyOrder = {
"order_id"
:
orderId
,
//
"order_id": orderId,
"table"
:
tableNumber
,
//
"table": tableNumber,
"user_name"
:
userName
,
//
"user_name": userName,
"total_order"
:
totalOrder
,
//
"total_order": totalOrder,
"date_order"
:
localDate
(
//
"date_order": localDate(
dateOrder
,
//
dateOrder,
isHistory:
true
,
//
isHistory: true,
),
//
),
"branch_code"
:
branchCode
,
//
"branch_code": branchCode,
"brand"
:
brandCode
,
//
"brand": brandCode,
"token"
:
token
,
//
"token": token,
};
//
};
String
historySave
=
jsonEncode
(
historyOrder
);
//
String historySave = jsonEncode(historyOrder);
listHistory
.
add
(
historySave
);
//
listHistory.add(historySave);
setListHistory
(
listHistory
);
//
setListHistory(listHistory);
}
//
}
if
(
indexTypeUrl
!=
-
1
)
{
if
(
indexTypeUrl
!=
-
1
)
{
listTypeUrl
.
removeWhere
(
listTypeUrl
.
removeWhere
(
...
@@ -150,7 +151,7 @@ class Api {
...
@@ -150,7 +151,7 @@ class Api {
);
);
setListTypeUrl
(
listTypeUrl
);
setListTypeUrl
(
listTypeUrl
);
setMqMessage
(
'
update
-
${jsonObject['data']['order_id']}
'
);
setMqMessage
(
'
ORDER-ID
-
${jsonObject['data']['order_id']}
'
);
setOrderId
(
jsonObject
[
'data'
][
'order_id'
]);
setOrderId
(
jsonObject
[
'data'
][
'order_id'
]);
setTypeOrder
(
jsonObject
[
'data'
][
'type_order'
]);
setTypeOrder
(
jsonObject
[
'data'
][
'type_order'
]);
setLogoUrl
(
jsonObject
[
'data'
][
'logo'
]);
setLogoUrl
(
jsonObject
[
'data'
][
'logo'
]);
...
@@ -166,6 +167,8 @@ class Api {
...
@@ -166,6 +167,8 @@ class Api {
setIsPickup
(
jsonObject
[
'data'
][
'is_pickup'
]);
setIsPickup
(
jsonObject
[
'data'
][
'is_pickup'
]);
setOpenTime
(
jsonObject
[
'data'
][
'open_time'
]);
setOpenTime
(
jsonObject
[
'data'
][
'open_time'
]);
setCloseTime
(
jsonObject
[
'data'
][
'close_time'
]);
setCloseTime
(
jsonObject
[
'data'
][
'close_time'
]);
setAddressOutlet
(
jsonObject
[
'data'
][
'address'
]);
setPhoneOutlet
(
jsonObject
[
'data'
][
'mobile'
]);
setTableNumber
(
jsonObject
[
'data'
][
'table_number'
]
??
''
);
setTableNumber
(
jsonObject
[
'data'
][
'table_number'
]
??
''
);
if
(
jsonObject
[
'data'
][
'payment_mode'
]
!=
null
)
{
if
(
jsonObject
[
'data'
][
'payment_mode'
]
!=
null
)
{
setPaymentMode
(
jsonObject
[
'data'
][
'payment_mode'
]);
setPaymentMode
(
jsonObject
[
'data'
][
'payment_mode'
]);
...
@@ -1335,7 +1338,8 @@ class Api {
...
@@ -1335,7 +1338,8 @@ class Api {
"menu"
:
variantData
,
"menu"
:
variantData
,
'secure_token'
:
secureToken
,
'secure_token'
:
secureToken
,
"from"
:
fromByod
,
"from"
:
fromByod
,
"type_order"
:
typeOrder
"type_order"
:
typeOrder
,
"type_url"
:
getUrlType
(),
};
};
var
bodies
=
jsonEncode
(
data
);
var
bodies
=
jsonEncode
(
data
);
// var apiResult = await http.post(Uri.parse(urlCheckout), body: bodies);
// var apiResult = await http.post(Uri.parse(urlCheckout), body: bodies);
...
@@ -1358,7 +1362,7 @@ class Api {
...
@@ -1358,7 +1362,7 @@ class Api {
timeOfDayPickup
.
minute
.
toString
().
padLeft
(
2
,
'0'
);
timeOfDayPickup
.
minute
.
toString
().
padLeft
(
2
,
'0'
);
// String amPM = timeToset.split(' ')[1];
// String amPM = timeToset.split(' ')[1];
String
setPickup
=
"
$hourString
:
$minuteString
"
;
String
setPickup
=
"
$hourString
:
$minuteString
"
;
setPickupTime
(
setPickup
);
//
setPickupTime(setPickup);
}
}
setStatusOrderCreated
(
true
);
setStatusOrderCreated
(
true
);
...
...
lib/bloc/outlet_detail.dart
0 → 100644
View file @
94c58a71
import
'package:flutter_bloc/flutter_bloc.dart'
;
class
ExpandDetailOutlet
extends
Cubit
<
bool
>
{
ExpandDetailOutlet
()
:
super
(
false
);
void
show
(
bool
status
)
{
emit
(
status
);
}
}
lib/helper/helper.dart
View file @
94c58a71
...
@@ -298,6 +298,22 @@ bool isCanTapAddMoreButton(int orderState) {
...
@@ -298,6 +298,22 @@ bool isCanTapAddMoreButton(int orderState) {
return
true
;
return
true
;
}
}
bool
isRemoveButtonBillShow
(
int
orderState
,
int
orderDetailState
)
{
int
paymentMethod
=
getPaymentMode
();
if
(
orderState
==
orderStateApproved
&&
orderDetailState
==
approvedOrder
&&
paymentMethod
==
closebill
)
{
return
true
;
}
else
{
return
false
;
}
}
String
timeHm
(
String
timeComplete
)
{
timeComplete
.
split
(
':'
);
return
"
${timeComplete.split(':')[0]}
:
${timeComplete.split(':')[1]}
"
;
}
bool
isVisibleAddMoreButton
(
int
tableStatus
,
int
orderState
)
{
bool
isVisibleAddMoreButton
(
int
tableStatus
,
int
orderState
)
{
int
paymentMethod
=
getPaymentMode
();
int
paymentMethod
=
getPaymentMode
();
if
(
tableStatus
==
tableStatusOpen
&&
getTableMode
()
==
tableIndividu
)
{
if
(
tableStatus
==
tableStatusOpen
&&
getTableMode
()
==
tableIndividu
)
{
...
@@ -319,11 +335,12 @@ bool isVisibleAddMoreButton(int tableStatus, int orderState) {
...
@@ -319,11 +335,12 @@ bool isVisibleAddMoreButton(int tableStatus, int orderState) {
}
}
bool
isVisibleAddRemoveQuantityButtonCheckout
(
bool
isVisibleAddRemoveQuantityButtonCheckout
(
bool
isHistory
,
int
orderStatusBillDetail
)
{
bool
isHistory
,
int
orderStatusBillDetail
,
int
orderState
)
{
int
paymentMethod
=
getPaymentMode
();
int
paymentMethod
=
getPaymentMode
();
if
(!
isHistory
&&
if
(!
isHistory
&&
paymentMethod
==
closebill
&&
paymentMethod
==
closebill
&&
orderStatusBillDetail
==
pendingOrder
)
{
orderStatusBillDetail
==
pendingOrder
&&
orderState
==
orderStateCreated
)
{
return
true
;
return
true
;
}
}
return
false
;
return
false
;
...
@@ -339,7 +356,7 @@ iscanTapAddRemoveQtyViewBill(int orderState) {
...
@@ -339,7 +356,7 @@ iscanTapAddRemoveQtyViewBill(int orderState) {
String
textButtonCheckout
(
int
orderState
)
{
String
textButtonCheckout
(
int
orderState
)
{
int
paymentMethod
=
getPaymentMode
();
int
paymentMethod
=
getPaymentMode
();
if
(
paymentMethod
==
closebill
&&
orderState
==
orderStateCreated
)
{
if
(
paymentMethod
==
closebill
&&
orderState
==
orderStateCreated
)
{
return
'
Kirim Pesan
an'
;
return
'
Pes
an'
;
}
else
if
(
paymentMethod
==
closebill
&&
}
else
if
(
paymentMethod
==
closebill
&&
(
orderState
==
orderStatePending
||
(
orderState
==
orderStatePending
||
orderState
==
orderStateApproved
)
||
orderState
==
orderStateApproved
)
||
...
@@ -592,6 +609,7 @@ String defaultViewBill = 'default';
...
@@ -592,6 +609,7 @@ String defaultViewBill = 'default';
//** call from untuk notemenu */
//** call from untuk notemenu */
String
fromMenu
=
'menu'
;
String
fromMenu
=
'menu'
;
String
fromBill
=
'bill'
;
String
fromBill
=
'bill'
;
String
fromConfirmationPage
=
'confirmationPage'
;
//** call from untuk notemenu */
//** call from untuk notemenu */
//**Rating Value */
//**Rating Value */
...
@@ -690,6 +708,15 @@ const double shopingBagSize = 0.03;
...
@@ -690,6 +708,15 @@ const double shopingBagSize = 0.03;
const
String
refreshIcon
=
'
\
uf2f9'
;
const
String
refreshIcon
=
'
\
uf2f9'
;
const
double
refreshIconSize
=
0.02
;
const
double
refreshIconSize
=
0.02
;
const
String
openLink
=
'
\
uf35d'
;
const
double
openLinkSize
=
14
;
const
String
phoneIcon
=
'
\
uf098'
;
const
double
phoneIconSize
=
16
;
const
String
trahsIcon
=
'
\
uf2ed'
;
const
double
trahsIconSize
=
16
;
//** fontawesome unicode */
//** fontawesome unicode */
//** max item menu */
//** max item menu */
...
@@ -727,4 +754,10 @@ const int typeOrderDineIn = 1;
...
@@ -727,4 +754,10 @@ const int typeOrderDineIn = 1;
const
int
typeOrderPickup
=
2
;
const
int
typeOrderPickup
=
2
;
//** Type ORder */
//** Type ORder */
// String MQmessage
String
mqMessage
=
getMqMessage
();
// String MQmessage
//** END CONSTANT */
//** END CONSTANT */
lib/helper/mq.dart
View file @
94c58a71
// ignore_for_file: unused_catch_clause
// ignore_for_file: unused_catch_clause
import
'dart:io'
;
import
'dart:io'
;
import
'dart:js'
;
import
'package:byod/bloc/view_bill.dart'
;
import
'package:byod/helper/logger.dart'
;
import
'package:byod/helper/logger.dart'
;
import
'package:byod/helper/prefs.dart'
;
import
'package:byod/main.dart'
;
import
'package:byod/main.dart'
;
import
'package:flutter/cupertino.dart'
;
import
'package:flutter/cupertino.dart'
;
import
'package:flutter_bloc/flutter_bloc.dart'
;
import
'package:flutter_bloc/flutter_bloc.dart'
;
...
@@ -13,12 +10,15 @@ import 'package:mqtt_client/mqtt_browser_client.dart';
...
@@ -13,12 +10,15 @@ import 'package:mqtt_client/mqtt_browser_client.dart';
import
'package:mqtt_client/mqtt_client.dart'
;
import
'package:mqtt_client/mqtt_client.dart'
;
import
'package:uuid/uuid.dart'
;
import
'package:uuid/uuid.dart'
;
import
'../bloc/view_bill.dart'
;
import
'helper.dart'
;
String
mqttUrl
=
'wss://mq.jasadigital.co.id'
;
String
mqttUrl
=
'wss://mq.jasadigital.co.id'
;
final
mqClient
=
MqttBrowserClient
(
mqttUrl
,
''
);
final
mqClient
=
MqttBrowserClient
(
mqttUrl
,
''
);
const
int
mqttPort
=
8083
;
const
int
mqttPort
=
8083
;
const
String
queueTopic
=
'
byod/bill/update
'
;
const
String
queueTopic
=
'
romi/byod/payment
'
;
String
queueMessage
=
getMqMessage
();
//
String queueMessage = getMqMessage();
const
String
usernameMq
=
'jasadigital'
;
const
String
usernameMq
=
'jasadigital'
;
const
String
passwordMq
=
'jasadigital'
;
const
String
passwordMq
=
'jasadigital'
;
const
uuidInit
=
Uuid
();
const
uuidInit
=
Uuid
();
...
@@ -81,11 +81,11 @@ Future<int> runMqTT(BuildContext context) async {
...
@@ -81,11 +81,11 @@ Future<int> runMqTT(BuildContext context) async {
MqttPublishPayload
.
bytesToStringAsString
(
recMess
.
payload
.
message
);
MqttPublishPayload
.
bytesToStringAsString
(
recMess
.
payload
.
message
);
// print('Notifikasi masuk dari topic <${c[0].topic}>, isinya adalah: $pt ');
// print('Notifikasi masuk dari topic <${c[0].topic}>, isinya adalah: $pt ');
// print('');
// print('');
if
(
c
[
0
].
topic
==
topic
&&
pt
==
queue
Message
)
{
if
(
c
[
0
].
topic
==
topic
&&
pt
==
mq
Message
)
{
// update bill disini
// update bill disini
context
.
read
<
ViewBillBloc
>().
getBill
();
context
.
read
<
ViewBillBloc
>().
getBill
();
if
(
debug
)
{
if
(
debug
)
{
logd
(
'CHECK TOPIC'
,
'TOPIC MASUK::
$topic
, MESSAGE::
$
queue
Message
'
);
logd
(
'CHECK TOPIC'
,
'TOPIC MASUK::
$topic
, MESSAGE::
$
mq
Message
'
);
}
}
}
else
{
}
else
{
if
(
debug
)
{
if
(
debug
)
{
...
...
lib/helper/prefs.dart
View file @
94c58a71
...
@@ -39,6 +39,8 @@ const String _longOutlet = 'longO';
...
@@ -39,6 +39,8 @@ const String _longOutlet = 'longO';
const
String
_openTime
=
'oT'
;
const
String
_openTime
=
'oT'
;
const
String
_closeTime
=
'cT'
;
const
String
_closeTime
=
'cT'
;
const
String
_pickupTime
=
'puT'
;
const
String
_pickupTime
=
'puT'
;
const
String
_addressOutlet
=
'addressOutlet'
;
const
String
_phoneOutlet
=
'phoneOutlet'
;
String
getBaseUrl
(
)
{
String
getBaseUrl
(
)
{
return
prefs
.
getString
(
_baseUrl
)
??
''
;
return
prefs
.
getString
(
_baseUrl
)
??
''
;
...
@@ -339,3 +341,19 @@ String getPickupTime() {
...
@@ -339,3 +341,19 @@ String getPickupTime() {
Future
<
void
>
setPickupTime
(
String
value
)
async
{
Future
<
void
>
setPickupTime
(
String
value
)
async
{
prefs
.
setString
(
_pickupTime
,
value
);
prefs
.
setString
(
_pickupTime
,
value
);
}
}
String
getAddressOutlet
(
)
{
return
prefs
.
getString
(
_addressOutlet
)
??
''
;
}
Future
<
void
>
setAddressOutlet
(
String
value
)
async
{
prefs
.
setString
(
_addressOutlet
,
value
);
}
String
getPhoneOutlet
(
)
{
return
prefs
.
getString
(
_phoneOutlet
)
??
''
;
}
Future
<
void
>
setPhoneOutlet
(
String
value
)
async
{
prefs
.
setString
(
_phoneOutlet
,
value
);
}
lib/helper/widget/emoticon_rate_new.dart
View file @
94c58a71
...
@@ -73,7 +73,7 @@ class EmoticonRateNew extends StatelessWidget {
...
@@ -73,7 +73,7 @@ class EmoticonRateNew extends StatelessWidget {
),
),
defaultText
(
defaultText
(
context
,
context
,
'Bagaimana pengalaman anda bertransaksi di
excelso
?'
,
'Bagaimana pengalaman anda bertransaksi di
${getBranchName()}
?'
,
textAlign:
TextAlign
.
center
,
textAlign:
TextAlign
.
center
,
style:
emojiStyle
(),
style:
emojiStyle
(),
),
),
...
@@ -240,9 +240,7 @@ class EmoticonRateNew extends StatelessWidget {
...
@@ -240,9 +240,7 @@ class EmoticonRateNew extends StatelessWidget {
).
then
((
value
)
{
).
then
((
value
)
{
Navigator
.
pop
(
context
);
Navigator
.
pop
(
context
);
if
(!
isHistory
)
{
if
(!
isHistory
)
{
context
context
.
read
<
ViewBillBloc
>().
getBill
();
.
read
<
ViewBillBloc
>()
.
getBill
();
}
else
{
}
else
{
List
<
String
>
listHistory
=
getListHistory
();
List
<
String
>
listHistory
=
getListHistory
();
if
(
listHistory
.
isNotEmpty
)
{
if
(
listHistory
.
isNotEmpty
)
{
...
...
lib/helper/widget/note_modal_bottom_sheet.dart
View file @
94c58a71
...
@@ -23,6 +23,10 @@ class NoteModalBottomSheet extends StatelessWidget {
...
@@ -23,6 +23,10 @@ class NoteModalBottomSheet extends StatelessWidget {
required
this
.
from
,
required
this
.
from
,
this
.
idOrderan
=
''
,
this
.
idOrderan
=
''
,
this
.
noteInit
=
''
,
this
.
noteInit
=
''
,
this
.
idMenu
=
''
,
this
.
menuName
=
''
,
this
.
imageUrl
=
''
,
this
.
priceMemu
=
0
,
required
this
.
contextFrom
,
required
this
.
contextFrom
,
})
:
super
(
key:
key
);
})
:
super
(
key:
key
);
...
@@ -35,6 +39,10 @@ class NoteModalBottomSheet extends StatelessWidget {
...
@@ -35,6 +39,10 @@ class NoteModalBottomSheet extends StatelessWidget {
final
String
idOrderan
;
final
String
idOrderan
;
final
String
noteInit
;
final
String
noteInit
;
final
BuildContext
contextFrom
;
final
BuildContext
contextFrom
;
final
String
idMenu
;
final
String
menuName
;
final
String
imageUrl
;
final
int
priceMemu
;
@override
@override
Widget
build
(
BuildContext
context
)
{
Widget
build
(
BuildContext
context
)
{
...
@@ -109,6 +117,19 @@ class NoteModalBottomSheet extends StatelessWidget {
...
@@ -109,6 +117,19 @@ class NoteModalBottomSheet extends StatelessWidget {
context
.
read
<
ViewBillBloc
>().
getBill
();
context
.
read
<
ViewBillBloc
>().
getBill
();
});
});
}
}
}
else
if
(
from
==
fromConfirmationPage
)
{
Map
<
String
,
dynamic
>
insertData
=
{
'menu_id'
:
idMenu
,
'menu_name'
:
menuName
,
'initvalue'
:
initialValue
,
'menu_price'
:
priceMemu
,
'old_order'
:
lisrOrders
,
'image_url'
:
menuItem
.
imageUrlMedium
,
'total_price'
:
priceMemu
,
'order_variant'
:
orderVariants
,
'note'
:
noteController
.
text
,
};
context
.
read
<
OrdersBloc
>().
insertData
(
insertData
);
}
}
Navigator
.
pop
(
context
);
Navigator
.
pop
(
context
);
},
},
...
...
lib/main.dart
View file @
94c58a71
...
@@ -29,6 +29,7 @@ import 'bloc/menu_selected_bar.dart';
...
@@ -29,6 +29,7 @@ import 'bloc/menu_selected_bar.dart';
import
'bloc/order_detail_variant.dart'
;
import
'bloc/order_detail_variant.dart'
;
import
'bloc/order_variant_temporary.dart'
;
import
'bloc/order_variant_temporary.dart'
;
import
'bloc/order_variant_value.dart'
;
import
'bloc/order_variant_value.dart'
;
import
'bloc/outlet_detail.dart'
;
import
'bloc/search_active.dart'
;
import
'bloc/search_active.dart'
;
import
'bloc/search_branch.dart'
;
import
'bloc/search_branch.dart'
;
import
'bloc/search_history.dart'
;
import
'bloc/search_history.dart'
;
...
@@ -195,6 +196,7 @@ class _MyAppState extends State<MyApp> {
...
@@ -195,6 +196,7 @@ class _MyAppState extends State<MyApp> {
BlocProvider
(
create:
(
_
)
=>
BranchList
()),
BlocProvider
(
create:
(
_
)
=>
BranchList
()),
BlocProvider
(
create:
(
_
)
=>
SearchBranch
()),
BlocProvider
(
create:
(
_
)
=>
SearchBranch
()),
BlocProvider
(
create:
(
_
)
=>
AddressUser
()),
BlocProvider
(
create:
(
_
)
=>
AddressUser
()),
BlocProvider
(
create:
(
_
)
=>
ExpandDetailOutlet
()),
],
],
child:
MaterialApp
(
child:
MaterialApp
(
title:
(
widget
.
title
==
null
)
?
defaultTitle
:
widget
.
title
,
title:
(
widget
.
title
==
null
)
?
defaultTitle
:
widget
.
title
,
...
...
lib/ui/confirm_order/confirm_order.dart
View file @
94c58a71
This diff is collapsed.
Click to expand it.
lib/ui/home/new_home2.dart
View file @
94c58a71
...
@@ -1057,62 +1057,86 @@ class _NewHome2State extends State<NewHome2> {
...
@@ -1057,62 +1057,86 @@ class _NewHome2State extends State<NewHome2> {
String
userName
,
String
userName
,
bool
isSearchActive
)
{
bool
isSearchActive
)
{
String
barName
;
String
barName
;
if
(
userName
!=
''
)
{
if
(
getIsDeliveryPickup
())
{
barName
=
'Meja
$tableNumber
-
$userName
'
;
if
(
getIsCustomerDelivery
())
{
barName
=
"
${getBranchName()}
- Delivery"
;
}
else
{
barName
=
"
${getBranchName()}
- Pickup"
;
}
}
else
{
}
else
{
barName
=
"Meja
$tableNumber
"
;
if
(
userName
!=
''
)
{
barName
=
'Meja
$tableNumber
-
$userName
'
;
}
else
{
barName
=
"Meja
$tableNumber
"
;
}
}
}
return
Container
(
return
Container
(
padding:
const
EdgeInsets
.
only
(
top:
10
),
padding:
const
EdgeInsets
.
only
(
top:
10
),
height:
appBarHeight
,
height:
appBarHeight
,
color:
backgroundColor
,
color:
backgroundColor
,
child:
Row
(
child:
Row
(
mainAxisAlignment:
MainAxisAlignment
.
spaceBetween
,
children:
[
children:
[
defaultText
(
Expanded
(
context
,
child:
defaultText
(
barName
,
context
,
style:
tableNameStyle
(),
barName
,
),
maxLines:
2
,
const
Spacer
(),
overFlow:
TextOverflow
.
ellipsis
,
GestureDetector
(
style:
tableNameStyle
(),
onTap:
()
{
context
.
read
<
SearchActive
>().
searchClick
(
isSearchActive
);
context
.
read
<
MenuSelectedBar
>().
selectedBarMenu
(
0
,
''
);
context
.
read
<
SearchMenu
>().
searchMenu
(
categoryNonFav
,
keyword:
''
,
isSearch:
true
,
);
_scrollController
.
animateTo
(
(
favList
.
isNotEmpty
)
?
heighScrollWithImage
:
imageHeight
,
// 371 sudah dihituing pixelnya untuk awal banget dari menu item
duration:
const
Duration
(
milliseconds:
500
),
curve:
Curves
.
fastOutSlowIn
,
);
},
child:
const
Image
(
image:
AssetImage
(
'assets/icons/search.png'
),
height:
24
,
width:
24
,
),
),
),
),
const
SizedBox
(
// const Spacer(),
width:
16
,
Container
(
),
width:
64
,
GestureDetector
(
child:
Row
(
onTap:
()
{
mainAxisAlignment:
MainAxisAlignment
.
end
,
// Navigator.push(
children:
[
// context, MaterialPageRoute(builder: (_) => ViewBill()));
GestureDetector
(
Navigator
.
push
(
context
,
onTap:
()
{
MaterialPageRoute
(
builder:
(
_
)
=>
const
ViewBillNew
()));
context
.
read
<
SearchActive
>().
searchClick
(
isSearchActive
);
},
context
.
read
<
MenuSelectedBar
>().
selectedBarMenu
(
0
,
''
);
child:
const
Image
(
context
.
read
<
SearchMenu
>().
searchMenu
(
image:
AssetImage
(
'assets/icons/book.png'
),
categoryNonFav
,
height:
24
,
keyword:
''
,
width:
24
,
isSearch:
true
,
);
_scrollController
.
animateTo
(
(
favList
.
isNotEmpty
)
?
heighScrollWithImage
:
imageHeight
,
// 371 sudah dihituing pixelnya untuk awal banget dari menu item
duration:
const
Duration
(
milliseconds:
500
),
curve:
Curves
.
fastOutSlowIn
,
);
},
child:
const
Image
(
image:
AssetImage
(
'assets/icons/search.png'
),
height:
24
,
width:
24
,
),
),
const
SizedBox
(
width:
16
,
),
GestureDetector
(
onTap:
()
{
// Navigator.push(
// context, MaterialPageRoute(builder: (_) => ViewBill()));
Navigator
.
push
(
context
,
MaterialPageRoute
(
builder:
(
_
)
=>
const
ViewBillNew
()));
},
child:
const
Image
(
image:
AssetImage
(
'assets/icons/book.png'
),
height:
24
,
width:
24
,
),
),
],
),
),
)
,
)
],
],
));
));
}
}
...
...
lib/ui/viewbill/list_order.dart
View file @
94c58a71
// ignore_for_file: sized_box_for_whitespace
// ignore_for_file: sized_box_for_whitespace
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
import
'../../helper/helper.dart'
;
import
'../../helper/widget/style.dart'
;
import
'../../models/bill.dart'
;
import
'../../models/bill.dart'
;
import
'../../models/bill_detail.dart'
;
import
'order_view_bill_new.dart'
;
import
'order_view_bill_new.dart'
;
class
ListOrder
extends
StatelessWidget
{
class
ListOrder
extends
StatelessWidget
{
...
@@ -24,23 +25,44 @@ class ListOrder extends StatelessWidget {
...
@@ -24,23 +25,44 @@ class ListOrder extends StatelessWidget {
shrinkWrap:
true
,
shrinkWrap:
true
,
itemCount:
bill
.
length
,
itemCount:
bill
.
length
,
itemBuilder:
(
context
,
i
)
{
itemBuilder:
(
context
,
i
)
{
return
ListView
.
builder
(
return
Column
(
physics:
children:
[
const
NeverScrollableScrollPhysics
(),
// to disable scrolling
Container
(
shrinkWrap:
true
,
width:
double
.
infinity
,
itemCount:
bill
[
i
].
billDetail
.
length
,
color:
backgroundWhite
,
itemBuilder:
(
ctx
,
d
)
{
padding:
const
EdgeInsets
.
only
(
return
OrderViewBillNew
(
left:
paddingLeftRight
,
billDetail:
bill
[
i
].
billDetail
[
d
],
right:
paddingLeftRight
,
bill:
bill
[
0
],
top:
16
,
lastItem:
),
(
i
+
1
==
bill
.
length
&&
d
+
1
==
bill
[
i
].
billDetail
.
length
)
child:
defaultText
(
context
,
bill
[
i
].
customerName
,
style:
viewbillStyle
(
font:
14
,
fontWeight:
FontWeight
.
w600
,
),
),
),
ListView
.
builder
(
physics:
const
NeverScrollableScrollPhysics
(),
// to disable scrolling
shrinkWrap:
true
,
itemCount:
bill
[
i
].
billDetail
.
length
,
itemBuilder:
(
ctx
,
d
)
{
return
OrderViewBillNew
(
billDetail:
bill
[
i
].
billDetail
[
d
],
bill:
bill
[
0
],
lastItem:
(
i
+
1
==
bill
.
length
&&
d
+
1
==
bill
[
i
].
billDetail
.
length
)
?
true
?
true
:
false
,
:
false
,
isHistory:
isHistory
,
isHistory:
isHistory
,
tableStatus:
tableStatus
,
tableStatus:
tableStatus
,
);
);
},
},
),
],
);
);
});
});
}
}
...
...
lib/ui/viewbill/order_view_bill_new.dart
View file @
94c58a71
...
@@ -155,7 +155,7 @@ class _OrderViewBillNewState extends State<OrderViewBillNew> {
...
@@ -155,7 +155,7 @@ class _OrderViewBillNewState extends State<OrderViewBillNew> {
left:
paddingLeftRightBill
,
right:
paddingLeftRightBill
),
left:
paddingLeftRightBill
,
right:
paddingLeftRightBill
),
child:
Row
(
child:
Row
(
mainAxisAlignment:
MainAxisAlignment
.
start
,
mainAxisAlignment:
MainAxisAlignment
.
start
,
crossAxisAlignment:
CrossAxisAlignment
.
start
,
crossAxisAlignment:
CrossAxisAlignment
.
center
,
children:
[
children:
[
ClipRRect
(
ClipRRect
(
borderRadius:
BorderRadius
.
circular
(
5
),
borderRadius:
BorderRadius
.
circular
(
5
),
...
@@ -181,64 +181,88 @@ class _OrderViewBillNewState extends State<OrderViewBillNew> {
...
@@ -181,64 +181,88 @@ class _OrderViewBillNewState extends State<OrderViewBillNew> {
width:
8
,
width:
8
,
),
),
Expanded
(
Expanded
(
child:
Column
(
child:
Column
(
crossAxisAlignment:
CrossAxisAlignment
.
start
,
crossAxisAlignment:
CrossAxisAlignment
.
start
,
children:
[
children:
[
defaultText
(
defaultText
(
context
,
context
,
widget
.
billDetail
.
menuName
,
widget
.
billDetail
.
menuName
,
maxLines:
2
,
maxLines:
2
,
overFlow:
TextOverflow
.
ellipsis
,
overFlow:
TextOverflow
.
ellipsis
,
style:
menuNameListViewBill
(),
style:
menuNameListViewBill
(),
),
defaultText
(
context
,
getOrderStatus
(
widget
.
billDetail
.
orderStatus
),
style:
viewbillStyle
(
font:
12
,
fontWeight:
FontWeight
.
w300
,
color:
getOrderStatusColor
(
widget
.
billDetail
.
orderStatus
),
),
),
),
defaultText
(
const
SizedBox
(
context
,
height:
6
,
getOrderStatus
(
widget
.
billDetail
.
orderStatus
),
),
style:
viewbillStyle
(
defaultText
(
font:
12
,
context
,
fontWeight:
FontWeight
.
w300
,
(
paymentMode
==
openBill
)
color:
getOrderStatusColor
(
?
'Rp
${formatNumber().format(amountParseToInt(widget.billDetail.total))}
|
$itemQuantityString
'
widget
.
billDetail
.
orderStatus
),
:
'Rp
${formatNumber().format(amountParseToInt(widget.billDetail.total))}
'
,
),
style:
viewbillStyle
(
font:
12
,
fontWeight:
FontWeight
.
w300
,
),
),
),
const
SizedBox
(
const
SizedBox
(
height:
6
,
height:
6
,
),
),
defaultText
(
(
widget
.
billDetail
.
notes
!=
''
)
context
,
?
defaultText
(
(
paymentMode
==
openBill
)
context
,
?
'Rp
${formatNumber().format(amountParseToInt(widget.billDetail.total))}
|
$itemQuantityString
'
'Catatan:
${widget.billDetail.notes}
'
,
:
'Rp
${formatNumber().format(amountParseToInt(widget.billDetail.total))}
'
,
maxLines:
2
,
style:
viewbillStyle
(
overFlow:
TextOverflow
.
ellipsis
,
font:
12
,
style:
viewbillStyle
(
fontWeight:
FontWeight
.
w300
,
font:
12
,
),
fontWeight:
FontWeight
.
w300
,
),
),
const
SizedBox
(
)
height:
6
,
:
const
SizedBox
(),
),
],
(
widget
.
billDetail
.
notes
!=
''
)
))
?
defaultText
(
context
,
'Catatan:
${widget.billDetail.notes}
'
,
maxLines:
2
,
overFlow:
TextOverflow
.
ellipsis
,
style:
viewbillStyle
(
font:
12
,
fontWeight:
FontWeight
.
w300
,
),
)
:
const
SizedBox
(),
],
),
),
(
isRemoveButtonBillShow
(
widget
.
bill
.
state
,
widget
.
billDetail
.
orderStatus
))
?
const
SizedBox
(
width:
5
,
)
:
const
SizedBox
(),
(
isRemoveButtonBillShow
(
widget
.
bill
.
state
,
widget
.
billDetail
.
orderStatus
))
?
GestureDetector
(
onTap:
()
{
deleteOrder
(
context
,
widget
.
billDetail
.
menuName
,
ontapOkDelete
,
ontapCancelDelete
);
},
child:
Container
(
color:
backgroundWhite
,
child:
fontAwesomeNew
(
trahsIcon
,
trahsIconSize
,
color:
dangerColor
,
),
),
)
:
const
SizedBox
()
],
],
),
),
),
),
],
],
),
),
),
),
isVisibleAddRemoveQuantityButtonCheckout
(
isVisibleAddRemoveQuantityButtonCheckout
(
widget
.
isHistory
,
widget
.
isHistory
,
widget
.
billDetail
.
orderStatus
)
widget
.
billDetail
.
orderStatus
,
widget
.
bill
.
state
)
?
Container
(
?
Container
(
padding:
EdgeInsets
.
only
(
padding:
EdgeInsets
.
only
(
left:
paddingLeftRightBill
,
right:
paddingLeftRightBill
),
left:
paddingLeftRightBill
,
right:
paddingLeftRightBill
),
...
@@ -248,17 +272,19 @@ class _OrderViewBillNewState extends State<OrderViewBillNew> {
...
@@ -248,17 +272,19 @@ class _OrderViewBillNewState extends State<OrderViewBillNew> {
),
),
)
)
:
const
SizedBox
(),
:
const
SizedBox
(),
isVisibleAddRemoveQuantityButtonCheckout
(
isVisibleAddRemoveQuantityButtonCheckout
(
widget
.
isHistory
,
widget
.
isHistory
,
widget
.
billDetail
.
orderStatus
)
widget
.
billDetail
.
orderStatus
,
widget
.
bill
.
state
)
?
const
SizedBox
(
?
const
SizedBox
(
height:
11
,
height:
11
,
)
)
:
const
SizedBox
(),
:
const
SizedBox
(),
isVisibleAddRemoveQuantityButtonCheckout
(
isVisibleAddRemoveQuantityButtonCheckout
(
widget
.
isHistory
,
widget
.
isHistory
,
widget
.
billDetail
.
orderStatus
)
widget
.
billDetail
.
orderStatus
,
widget
.
bill
.
state
)
?
Container
(
?
Container
(
padding:
EdgeInsets
.
only
(
padding:
EdgeInsets
.
only
(
left:
paddingLeftRightBill
,
right:
paddingLeftRightBill
),
left:
paddingLeftRightBill
,
right:
paddingLeftRightBill
,
),
child:
Row
(
child:
Row
(
children:
[
children:
[
GestureDetector
(
GestureDetector
(
...
...
lib/ui/viewbill/view_bill.dart
View file @
94c58a71
...
@@ -23,6 +23,7 @@ import 'package:uuid/uuid.dart';
...
@@ -23,6 +23,7 @@ import 'package:uuid/uuid.dart';
import
'../../api/api.dart'
;
import
'../../api/api.dart'
;
import
'../../bloc/branch_exist.dart'
;
import
'../../bloc/branch_exist.dart'
;
import
'../../bloc/feedback_option.dart'
;
import
'../../bloc/feedback_option.dart'
;
import
'../../helper/prefs.dart'
;
import
'../../helper/widget/button_dialog.dart'
;
import
'../../helper/widget/button_dialog.dart'
;
import
'../../helper/widget/emoticon_rate.dart'
;
import
'../../helper/widget/emoticon_rate.dart'
;
import
'../../helper/widget/open_url.dart'
;
import
'../../helper/widget/open_url.dart'
;
...
@@ -323,7 +324,7 @@ Mohon menuju kasir untuk meminta bukti pembayaran''';
...
@@ -323,7 +324,7 @@ Mohon menuju kasir untuk meminta bukti pembayaran''';
builder:
(
BuildContext
context
)
=>
AlertDialog
(
builder:
(
BuildContext
context
)
=>
AlertDialog
(
title:
defaultText
(
title:
defaultText
(
context
,
context
,
'Bagaimana pengalaman anda bertransaksi di
excelso
?'
,
'Bagaimana pengalaman anda bertransaksi di
${getBranchName()}
?'
,
style:
textStyleNormalFont
(
context
),
style:
textStyleNormalFont
(
context
),
),
),
content:
EmoticonRate
(
content:
EmoticonRate
(
...
...
lib/ui/viewbill/view_bill_new.dart
View file @
94c58a71
This diff is collapsed.
Click to expand it.
lib/ui/webview/app_bar_webview.dart
View file @
94c58a71
...
@@ -62,34 +62,34 @@ class CustomAppBar extends StatelessWidget {
...
@@ -62,34 +62,34 @@ class CustomAppBar extends StatelessWidget {
),
),
],
],
),
),
GestureDetector
(
//
GestureDetector(
onTap:
()
{
//
onTap: () {
Navigator
.
pushReplacement
(
//
Navigator.pushReplacement(
context
,
//
context,
MaterialPageRoute
(
//
MaterialPageRoute(
builder:
(
_
)
=>
const
ViewBillNew
(
//
builder: (_) => const ViewBillNew(
isRepeatViewBill:
true
,
//
isRepeatViewBill: true,
),
//
),
),
//
),
);
//
);
},
//
},
child:
Row
(
//
child: Row(
children:
[
//
children: [
defaultText
(
//
defaultText(
context
,
//
context,
'Simpan'
,
//
'Simpan',
style:
appBarNameViewBill
(),
//
style: appBarNameViewBill(),
),
//
),
const
SizedBox
(
//
const SizedBox(
width:
5
,
//
width: 5,
),
//
),
fontAwesomeNew
(
//
fontAwesomeNew(
saveIcon
,
//
saveIcon,
saveIconSize
,
//
saveIconSize,
),
//
),
],
//
],
),
//
),
),
//
),
],
],
),
),
);
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment