update print all segment

This commit is contained in:
Efril 2026-04-03 17:44:04 +07:00
parent a0db13feb4
commit 46dfb7e44e
10 changed files with 840 additions and 11 deletions

View File

@ -96,6 +96,54 @@ class PrintStruckBloc extends Bloc<PrintStruckEvent, PrintStruckState> {
order: e.order, order: e.order,
); );
emit(
state.copyWith(
isPrinting: false,
failureOrPrintStruck: optionOf(failureOrSuccess),
),
);
},
kitchen: (e) async {
Either<PrinterFailure, Unit> failureOrSuccess;
emit(state.copyWith(isPrinting: true, failureOrPrintStruck: none()));
failureOrSuccess = await _printerRepository.printStruckKitchen(
order: e.order,
);
emit(
state.copyWith(
isPrinting: false,
failureOrPrintStruck: optionOf(failureOrSuccess),
),
);
},
bar: (e) async {
Either<PrinterFailure, Unit> failureOrSuccess;
emit(state.copyWith(isPrinting: true, failureOrPrintStruck: none()));
failureOrSuccess = await _printerRepository.printStruckBar(
order: e.order,
);
emit(
state.copyWith(
isPrinting: false,
failureOrPrintStruck: optionOf(failureOrSuccess),
),
);
},
checker: (e) async {
Either<PrinterFailure, Unit> failureOrSuccess;
emit(state.copyWith(isPrinting: true, failureOrPrintStruck: none()));
failureOrSuccess = await _printerRepository.printStruckChecker(
order: e.order,
);
emit( emit(
state.copyWith( state.copyWith(
isPrinting: false, isPrinting: false,

View File

@ -24,6 +24,9 @@ mixin _$PrintStruckEvent {
required TResult Function(Order order) cashier, required TResult Function(Order order) cashier,
required TResult Function(Order order) payment, required TResult Function(Order order) payment,
required TResult Function(Order order) voided, required TResult Function(Order order) voided,
required TResult Function(Order order) checker,
required TResult Function(Order order) kitchen,
required TResult Function(Order order) bar,
required TResult Function(Order order) splitBill, required TResult Function(Order order) splitBill,
}) => throw _privateConstructorUsedError; }) => throw _privateConstructorUsedError;
@optionalTypeArgs @optionalTypeArgs
@ -32,6 +35,9 @@ mixin _$PrintStruckEvent {
TResult? Function(Order order)? cashier, TResult? Function(Order order)? cashier,
TResult? Function(Order order)? payment, TResult? Function(Order order)? payment,
TResult? Function(Order order)? voided, TResult? Function(Order order)? voided,
TResult? Function(Order order)? checker,
TResult? Function(Order order)? kitchen,
TResult? Function(Order order)? bar,
TResult? Function(Order order)? splitBill, TResult? Function(Order order)? splitBill,
}) => throw _privateConstructorUsedError; }) => throw _privateConstructorUsedError;
@optionalTypeArgs @optionalTypeArgs
@ -40,6 +46,9 @@ mixin _$PrintStruckEvent {
TResult Function(Order order)? cashier, TResult Function(Order order)? cashier,
TResult Function(Order order)? payment, TResult Function(Order order)? payment,
TResult Function(Order order)? voided, TResult Function(Order order)? voided,
TResult Function(Order order)? checker,
TResult Function(Order order)? kitchen,
TResult Function(Order order)? bar,
TResult Function(Order order)? splitBill, TResult Function(Order order)? splitBill,
required TResult orElse(), required TResult orElse(),
}) => throw _privateConstructorUsedError; }) => throw _privateConstructorUsedError;
@ -49,6 +58,9 @@ mixin _$PrintStruckEvent {
required TResult Function(_Cashier value) cashier, required TResult Function(_Cashier value) cashier,
required TResult Function(_Payment value) payment, required TResult Function(_Payment value) payment,
required TResult Function(_Voided value) voided, required TResult Function(_Voided value) voided,
required TResult Function(_Checker value) checker,
required TResult Function(_Kitchen value) kitchen,
required TResult Function(_Bar value) bar,
required TResult Function(_SplitBill value) splitBill, required TResult Function(_SplitBill value) splitBill,
}) => throw _privateConstructorUsedError; }) => throw _privateConstructorUsedError;
@optionalTypeArgs @optionalTypeArgs
@ -57,6 +69,9 @@ mixin _$PrintStruckEvent {
TResult? Function(_Cashier value)? cashier, TResult? Function(_Cashier value)? cashier,
TResult? Function(_Payment value)? payment, TResult? Function(_Payment value)? payment,
TResult? Function(_Voided value)? voided, TResult? Function(_Voided value)? voided,
TResult? Function(_Checker value)? checker,
TResult? Function(_Kitchen value)? kitchen,
TResult? Function(_Bar value)? bar,
TResult? Function(_SplitBill value)? splitBill, TResult? Function(_SplitBill value)? splitBill,
}) => throw _privateConstructorUsedError; }) => throw _privateConstructorUsedError;
@optionalTypeArgs @optionalTypeArgs
@ -65,6 +80,9 @@ mixin _$PrintStruckEvent {
TResult Function(_Cashier value)? cashier, TResult Function(_Cashier value)? cashier,
TResult Function(_Payment value)? payment, TResult Function(_Payment value)? payment,
TResult Function(_Voided value)? voided, TResult Function(_Voided value)? voided,
TResult Function(_Checker value)? checker,
TResult Function(_Kitchen value)? kitchen,
TResult Function(_Bar value)? bar,
TResult Function(_SplitBill value)? splitBill, TResult Function(_SplitBill value)? splitBill,
required TResult orElse(), required TResult orElse(),
}) => throw _privateConstructorUsedError; }) => throw _privateConstructorUsedError;
@ -204,6 +222,9 @@ class _$OrderImpl implements _Order {
required TResult Function(Order order) cashier, required TResult Function(Order order) cashier,
required TResult Function(Order order) payment, required TResult Function(Order order) payment,
required TResult Function(Order order) voided, required TResult Function(Order order) voided,
required TResult Function(Order order) checker,
required TResult Function(Order order) kitchen,
required TResult Function(Order order) bar,
required TResult Function(Order order) splitBill, required TResult Function(Order order) splitBill,
}) { }) {
return order(this.order); return order(this.order);
@ -216,6 +237,9 @@ class _$OrderImpl implements _Order {
TResult? Function(Order order)? cashier, TResult? Function(Order order)? cashier,
TResult? Function(Order order)? payment, TResult? Function(Order order)? payment,
TResult? Function(Order order)? voided, TResult? Function(Order order)? voided,
TResult? Function(Order order)? checker,
TResult? Function(Order order)? kitchen,
TResult? Function(Order order)? bar,
TResult? Function(Order order)? splitBill, TResult? Function(Order order)? splitBill,
}) { }) {
return order?.call(this.order); return order?.call(this.order);
@ -228,6 +252,9 @@ class _$OrderImpl implements _Order {
TResult Function(Order order)? cashier, TResult Function(Order order)? cashier,
TResult Function(Order order)? payment, TResult Function(Order order)? payment,
TResult Function(Order order)? voided, TResult Function(Order order)? voided,
TResult Function(Order order)? checker,
TResult Function(Order order)? kitchen,
TResult Function(Order order)? bar,
TResult Function(Order order)? splitBill, TResult Function(Order order)? splitBill,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -244,6 +271,9 @@ class _$OrderImpl implements _Order {
required TResult Function(_Cashier value) cashier, required TResult Function(_Cashier value) cashier,
required TResult Function(_Payment value) payment, required TResult Function(_Payment value) payment,
required TResult Function(_Voided value) voided, required TResult Function(_Voided value) voided,
required TResult Function(_Checker value) checker,
required TResult Function(_Kitchen value) kitchen,
required TResult Function(_Bar value) bar,
required TResult Function(_SplitBill value) splitBill, required TResult Function(_SplitBill value) splitBill,
}) { }) {
return order(this); return order(this);
@ -256,6 +286,9 @@ class _$OrderImpl implements _Order {
TResult? Function(_Cashier value)? cashier, TResult? Function(_Cashier value)? cashier,
TResult? Function(_Payment value)? payment, TResult? Function(_Payment value)? payment,
TResult? Function(_Voided value)? voided, TResult? Function(_Voided value)? voided,
TResult? Function(_Checker value)? checker,
TResult? Function(_Kitchen value)? kitchen,
TResult? Function(_Bar value)? bar,
TResult? Function(_SplitBill value)? splitBill, TResult? Function(_SplitBill value)? splitBill,
}) { }) {
return order?.call(this); return order?.call(this);
@ -268,6 +301,9 @@ class _$OrderImpl implements _Order {
TResult Function(_Cashier value)? cashier, TResult Function(_Cashier value)? cashier,
TResult Function(_Payment value)? payment, TResult Function(_Payment value)? payment,
TResult Function(_Voided value)? voided, TResult Function(_Voided value)? voided,
TResult Function(_Checker value)? checker,
TResult Function(_Kitchen value)? kitchen,
TResult Function(_Bar value)? bar,
TResult Function(_SplitBill value)? splitBill, TResult Function(_SplitBill value)? splitBill,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -371,6 +407,9 @@ class _$CashierImpl implements _Cashier {
required TResult Function(Order order) cashier, required TResult Function(Order order) cashier,
required TResult Function(Order order) payment, required TResult Function(Order order) payment,
required TResult Function(Order order) voided, required TResult Function(Order order) voided,
required TResult Function(Order order) checker,
required TResult Function(Order order) kitchen,
required TResult Function(Order order) bar,
required TResult Function(Order order) splitBill, required TResult Function(Order order) splitBill,
}) { }) {
return cashier(this.order); return cashier(this.order);
@ -383,6 +422,9 @@ class _$CashierImpl implements _Cashier {
TResult? Function(Order order)? cashier, TResult? Function(Order order)? cashier,
TResult? Function(Order order)? payment, TResult? Function(Order order)? payment,
TResult? Function(Order order)? voided, TResult? Function(Order order)? voided,
TResult? Function(Order order)? checker,
TResult? Function(Order order)? kitchen,
TResult? Function(Order order)? bar,
TResult? Function(Order order)? splitBill, TResult? Function(Order order)? splitBill,
}) { }) {
return cashier?.call(this.order); return cashier?.call(this.order);
@ -395,6 +437,9 @@ class _$CashierImpl implements _Cashier {
TResult Function(Order order)? cashier, TResult Function(Order order)? cashier,
TResult Function(Order order)? payment, TResult Function(Order order)? payment,
TResult Function(Order order)? voided, TResult Function(Order order)? voided,
TResult Function(Order order)? checker,
TResult Function(Order order)? kitchen,
TResult Function(Order order)? bar,
TResult Function(Order order)? splitBill, TResult Function(Order order)? splitBill,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -411,6 +456,9 @@ class _$CashierImpl implements _Cashier {
required TResult Function(_Cashier value) cashier, required TResult Function(_Cashier value) cashier,
required TResult Function(_Payment value) payment, required TResult Function(_Payment value) payment,
required TResult Function(_Voided value) voided, required TResult Function(_Voided value) voided,
required TResult Function(_Checker value) checker,
required TResult Function(_Kitchen value) kitchen,
required TResult Function(_Bar value) bar,
required TResult Function(_SplitBill value) splitBill, required TResult Function(_SplitBill value) splitBill,
}) { }) {
return cashier(this); return cashier(this);
@ -423,6 +471,9 @@ class _$CashierImpl implements _Cashier {
TResult? Function(_Cashier value)? cashier, TResult? Function(_Cashier value)? cashier,
TResult? Function(_Payment value)? payment, TResult? Function(_Payment value)? payment,
TResult? Function(_Voided value)? voided, TResult? Function(_Voided value)? voided,
TResult? Function(_Checker value)? checker,
TResult? Function(_Kitchen value)? kitchen,
TResult? Function(_Bar value)? bar,
TResult? Function(_SplitBill value)? splitBill, TResult? Function(_SplitBill value)? splitBill,
}) { }) {
return cashier?.call(this); return cashier?.call(this);
@ -435,6 +486,9 @@ class _$CashierImpl implements _Cashier {
TResult Function(_Cashier value)? cashier, TResult Function(_Cashier value)? cashier,
TResult Function(_Payment value)? payment, TResult Function(_Payment value)? payment,
TResult Function(_Voided value)? voided, TResult Function(_Voided value)? voided,
TResult Function(_Checker value)? checker,
TResult Function(_Kitchen value)? kitchen,
TResult Function(_Bar value)? bar,
TResult Function(_SplitBill value)? splitBill, TResult Function(_SplitBill value)? splitBill,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -538,6 +592,9 @@ class _$PaymentImpl implements _Payment {
required TResult Function(Order order) cashier, required TResult Function(Order order) cashier,
required TResult Function(Order order) payment, required TResult Function(Order order) payment,
required TResult Function(Order order) voided, required TResult Function(Order order) voided,
required TResult Function(Order order) checker,
required TResult Function(Order order) kitchen,
required TResult Function(Order order) bar,
required TResult Function(Order order) splitBill, required TResult Function(Order order) splitBill,
}) { }) {
return payment(this.order); return payment(this.order);
@ -550,6 +607,9 @@ class _$PaymentImpl implements _Payment {
TResult? Function(Order order)? cashier, TResult? Function(Order order)? cashier,
TResult? Function(Order order)? payment, TResult? Function(Order order)? payment,
TResult? Function(Order order)? voided, TResult? Function(Order order)? voided,
TResult? Function(Order order)? checker,
TResult? Function(Order order)? kitchen,
TResult? Function(Order order)? bar,
TResult? Function(Order order)? splitBill, TResult? Function(Order order)? splitBill,
}) { }) {
return payment?.call(this.order); return payment?.call(this.order);
@ -562,6 +622,9 @@ class _$PaymentImpl implements _Payment {
TResult Function(Order order)? cashier, TResult Function(Order order)? cashier,
TResult Function(Order order)? payment, TResult Function(Order order)? payment,
TResult Function(Order order)? voided, TResult Function(Order order)? voided,
TResult Function(Order order)? checker,
TResult Function(Order order)? kitchen,
TResult Function(Order order)? bar,
TResult Function(Order order)? splitBill, TResult Function(Order order)? splitBill,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -578,6 +641,9 @@ class _$PaymentImpl implements _Payment {
required TResult Function(_Cashier value) cashier, required TResult Function(_Cashier value) cashier,
required TResult Function(_Payment value) payment, required TResult Function(_Payment value) payment,
required TResult Function(_Voided value) voided, required TResult Function(_Voided value) voided,
required TResult Function(_Checker value) checker,
required TResult Function(_Kitchen value) kitchen,
required TResult Function(_Bar value) bar,
required TResult Function(_SplitBill value) splitBill, required TResult Function(_SplitBill value) splitBill,
}) { }) {
return payment(this); return payment(this);
@ -590,6 +656,9 @@ class _$PaymentImpl implements _Payment {
TResult? Function(_Cashier value)? cashier, TResult? Function(_Cashier value)? cashier,
TResult? Function(_Payment value)? payment, TResult? Function(_Payment value)? payment,
TResult? Function(_Voided value)? voided, TResult? Function(_Voided value)? voided,
TResult? Function(_Checker value)? checker,
TResult? Function(_Kitchen value)? kitchen,
TResult? Function(_Bar value)? bar,
TResult? Function(_SplitBill value)? splitBill, TResult? Function(_SplitBill value)? splitBill,
}) { }) {
return payment?.call(this); return payment?.call(this);
@ -602,6 +671,9 @@ class _$PaymentImpl implements _Payment {
TResult Function(_Cashier value)? cashier, TResult Function(_Cashier value)? cashier,
TResult Function(_Payment value)? payment, TResult Function(_Payment value)? payment,
TResult Function(_Voided value)? voided, TResult Function(_Voided value)? voided,
TResult Function(_Checker value)? checker,
TResult Function(_Kitchen value)? kitchen,
TResult Function(_Bar value)? bar,
TResult Function(_SplitBill value)? splitBill, TResult Function(_SplitBill value)? splitBill,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -705,6 +777,9 @@ class _$VoidedImpl implements _Voided {
required TResult Function(Order order) cashier, required TResult Function(Order order) cashier,
required TResult Function(Order order) payment, required TResult Function(Order order) payment,
required TResult Function(Order order) voided, required TResult Function(Order order) voided,
required TResult Function(Order order) checker,
required TResult Function(Order order) kitchen,
required TResult Function(Order order) bar,
required TResult Function(Order order) splitBill, required TResult Function(Order order) splitBill,
}) { }) {
return voided(this.order); return voided(this.order);
@ -717,6 +792,9 @@ class _$VoidedImpl implements _Voided {
TResult? Function(Order order)? cashier, TResult? Function(Order order)? cashier,
TResult? Function(Order order)? payment, TResult? Function(Order order)? payment,
TResult? Function(Order order)? voided, TResult? Function(Order order)? voided,
TResult? Function(Order order)? checker,
TResult? Function(Order order)? kitchen,
TResult? Function(Order order)? bar,
TResult? Function(Order order)? splitBill, TResult? Function(Order order)? splitBill,
}) { }) {
return voided?.call(this.order); return voided?.call(this.order);
@ -729,6 +807,9 @@ class _$VoidedImpl implements _Voided {
TResult Function(Order order)? cashier, TResult Function(Order order)? cashier,
TResult Function(Order order)? payment, TResult Function(Order order)? payment,
TResult Function(Order order)? voided, TResult Function(Order order)? voided,
TResult Function(Order order)? checker,
TResult Function(Order order)? kitchen,
TResult Function(Order order)? bar,
TResult Function(Order order)? splitBill, TResult Function(Order order)? splitBill,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -745,6 +826,9 @@ class _$VoidedImpl implements _Voided {
required TResult Function(_Cashier value) cashier, required TResult Function(_Cashier value) cashier,
required TResult Function(_Payment value) payment, required TResult Function(_Payment value) payment,
required TResult Function(_Voided value) voided, required TResult Function(_Voided value) voided,
required TResult Function(_Checker value) checker,
required TResult Function(_Kitchen value) kitchen,
required TResult Function(_Bar value) bar,
required TResult Function(_SplitBill value) splitBill, required TResult Function(_SplitBill value) splitBill,
}) { }) {
return voided(this); return voided(this);
@ -757,6 +841,9 @@ class _$VoidedImpl implements _Voided {
TResult? Function(_Cashier value)? cashier, TResult? Function(_Cashier value)? cashier,
TResult? Function(_Payment value)? payment, TResult? Function(_Payment value)? payment,
TResult? Function(_Voided value)? voided, TResult? Function(_Voided value)? voided,
TResult? Function(_Checker value)? checker,
TResult? Function(_Kitchen value)? kitchen,
TResult? Function(_Bar value)? bar,
TResult? Function(_SplitBill value)? splitBill, TResult? Function(_SplitBill value)? splitBill,
}) { }) {
return voided?.call(this); return voided?.call(this);
@ -769,6 +856,9 @@ class _$VoidedImpl implements _Voided {
TResult Function(_Cashier value)? cashier, TResult Function(_Cashier value)? cashier,
TResult Function(_Payment value)? payment, TResult Function(_Payment value)? payment,
TResult Function(_Voided value)? voided, TResult Function(_Voided value)? voided,
TResult Function(_Checker value)? checker,
TResult Function(_Kitchen value)? kitchen,
TResult Function(_Bar value)? bar,
TResult Function(_SplitBill value)? splitBill, TResult Function(_SplitBill value)? splitBill,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -793,6 +883,557 @@ abstract class _Voided implements PrintStruckEvent {
throw _privateConstructorUsedError; throw _privateConstructorUsedError;
} }
/// @nodoc
abstract class _$$CheckerImplCopyWith<$Res>
implements $PrintStruckEventCopyWith<$Res> {
factory _$$CheckerImplCopyWith(
_$CheckerImpl value,
$Res Function(_$CheckerImpl) then,
) = __$$CheckerImplCopyWithImpl<$Res>;
@override
@useResult
$Res call({Order order});
@override
$OrderCopyWith<$Res> get order;
}
/// @nodoc
class __$$CheckerImplCopyWithImpl<$Res>
extends _$PrintStruckEventCopyWithImpl<$Res, _$CheckerImpl>
implements _$$CheckerImplCopyWith<$Res> {
__$$CheckerImplCopyWithImpl(
_$CheckerImpl _value,
$Res Function(_$CheckerImpl) _then,
) : super(_value, _then);
/// Create a copy of PrintStruckEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({Object? order = null}) {
return _then(
_$CheckerImpl(
null == order
? _value.order
: order // ignore: cast_nullable_to_non_nullable
as Order,
),
);
}
}
/// @nodoc
class _$CheckerImpl implements _Checker {
const _$CheckerImpl(this.order);
@override
final Order order;
@override
String toString() {
return 'PrintStruckEvent.checker(order: $order)';
}
@override
bool operator ==(Object other) {
return identical(this, other) ||
(other.runtimeType == runtimeType &&
other is _$CheckerImpl &&
(identical(other.order, order) || other.order == order));
}
@override
int get hashCode => Object.hash(runtimeType, order);
/// Create a copy of PrintStruckEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@override
@pragma('vm:prefer-inline')
_$$CheckerImplCopyWith<_$CheckerImpl> get copyWith =>
__$$CheckerImplCopyWithImpl<_$CheckerImpl>(this, _$identity);
@override
@optionalTypeArgs
TResult when<TResult extends Object?>({
required TResult Function(Order order) order,
required TResult Function(Order order) cashier,
required TResult Function(Order order) payment,
required TResult Function(Order order) voided,
required TResult Function(Order order) checker,
required TResult Function(Order order) kitchen,
required TResult Function(Order order) bar,
required TResult Function(Order order) splitBill,
}) {
return checker(this.order);
}
@override
@optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({
TResult? Function(Order order)? order,
TResult? Function(Order order)? cashier,
TResult? Function(Order order)? payment,
TResult? Function(Order order)? voided,
TResult? Function(Order order)? checker,
TResult? Function(Order order)? kitchen,
TResult? Function(Order order)? bar,
TResult? Function(Order order)? splitBill,
}) {
return checker?.call(this.order);
}
@override
@optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
TResult Function(Order order)? order,
TResult Function(Order order)? cashier,
TResult Function(Order order)? payment,
TResult Function(Order order)? voided,
TResult Function(Order order)? checker,
TResult Function(Order order)? kitchen,
TResult Function(Order order)? bar,
TResult Function(Order order)? splitBill,
required TResult orElse(),
}) {
if (checker != null) {
return checker(this.order);
}
return orElse();
}
@override
@optionalTypeArgs
TResult map<TResult extends Object?>({
required TResult Function(_Order value) order,
required TResult Function(_Cashier value) cashier,
required TResult Function(_Payment value) payment,
required TResult Function(_Voided value) voided,
required TResult Function(_Checker value) checker,
required TResult Function(_Kitchen value) kitchen,
required TResult Function(_Bar value) bar,
required TResult Function(_SplitBill value) splitBill,
}) {
return checker(this);
}
@override
@optionalTypeArgs
TResult? mapOrNull<TResult extends Object?>({
TResult? Function(_Order value)? order,
TResult? Function(_Cashier value)? cashier,
TResult? Function(_Payment value)? payment,
TResult? Function(_Voided value)? voided,
TResult? Function(_Checker value)? checker,
TResult? Function(_Kitchen value)? kitchen,
TResult? Function(_Bar value)? bar,
TResult? Function(_SplitBill value)? splitBill,
}) {
return checker?.call(this);
}
@override
@optionalTypeArgs
TResult maybeMap<TResult extends Object?>({
TResult Function(_Order value)? order,
TResult Function(_Cashier value)? cashier,
TResult Function(_Payment value)? payment,
TResult Function(_Voided value)? voided,
TResult Function(_Checker value)? checker,
TResult Function(_Kitchen value)? kitchen,
TResult Function(_Bar value)? bar,
TResult Function(_SplitBill value)? splitBill,
required TResult orElse(),
}) {
if (checker != null) {
return checker(this);
}
return orElse();
}
}
abstract class _Checker implements PrintStruckEvent {
const factory _Checker(final Order order) = _$CheckerImpl;
@override
Order get order;
/// Create a copy of PrintStruckEvent
/// with the given fields replaced by the non-null parameter values.
@override
@JsonKey(includeFromJson: false, includeToJson: false)
_$$CheckerImplCopyWith<_$CheckerImpl> get copyWith =>
throw _privateConstructorUsedError;
}
/// @nodoc
abstract class _$$KitchenImplCopyWith<$Res>
implements $PrintStruckEventCopyWith<$Res> {
factory _$$KitchenImplCopyWith(
_$KitchenImpl value,
$Res Function(_$KitchenImpl) then,
) = __$$KitchenImplCopyWithImpl<$Res>;
@override
@useResult
$Res call({Order order});
@override
$OrderCopyWith<$Res> get order;
}
/// @nodoc
class __$$KitchenImplCopyWithImpl<$Res>
extends _$PrintStruckEventCopyWithImpl<$Res, _$KitchenImpl>
implements _$$KitchenImplCopyWith<$Res> {
__$$KitchenImplCopyWithImpl(
_$KitchenImpl _value,
$Res Function(_$KitchenImpl) _then,
) : super(_value, _then);
/// Create a copy of PrintStruckEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({Object? order = null}) {
return _then(
_$KitchenImpl(
null == order
? _value.order
: order // ignore: cast_nullable_to_non_nullable
as Order,
),
);
}
}
/// @nodoc
class _$KitchenImpl implements _Kitchen {
const _$KitchenImpl(this.order);
@override
final Order order;
@override
String toString() {
return 'PrintStruckEvent.kitchen(order: $order)';
}
@override
bool operator ==(Object other) {
return identical(this, other) ||
(other.runtimeType == runtimeType &&
other is _$KitchenImpl &&
(identical(other.order, order) || other.order == order));
}
@override
int get hashCode => Object.hash(runtimeType, order);
/// Create a copy of PrintStruckEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@override
@pragma('vm:prefer-inline')
_$$KitchenImplCopyWith<_$KitchenImpl> get copyWith =>
__$$KitchenImplCopyWithImpl<_$KitchenImpl>(this, _$identity);
@override
@optionalTypeArgs
TResult when<TResult extends Object?>({
required TResult Function(Order order) order,
required TResult Function(Order order) cashier,
required TResult Function(Order order) payment,
required TResult Function(Order order) voided,
required TResult Function(Order order) checker,
required TResult Function(Order order) kitchen,
required TResult Function(Order order) bar,
required TResult Function(Order order) splitBill,
}) {
return kitchen(this.order);
}
@override
@optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({
TResult? Function(Order order)? order,
TResult? Function(Order order)? cashier,
TResult? Function(Order order)? payment,
TResult? Function(Order order)? voided,
TResult? Function(Order order)? checker,
TResult? Function(Order order)? kitchen,
TResult? Function(Order order)? bar,
TResult? Function(Order order)? splitBill,
}) {
return kitchen?.call(this.order);
}
@override
@optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
TResult Function(Order order)? order,
TResult Function(Order order)? cashier,
TResult Function(Order order)? payment,
TResult Function(Order order)? voided,
TResult Function(Order order)? checker,
TResult Function(Order order)? kitchen,
TResult Function(Order order)? bar,
TResult Function(Order order)? splitBill,
required TResult orElse(),
}) {
if (kitchen != null) {
return kitchen(this.order);
}
return orElse();
}
@override
@optionalTypeArgs
TResult map<TResult extends Object?>({
required TResult Function(_Order value) order,
required TResult Function(_Cashier value) cashier,
required TResult Function(_Payment value) payment,
required TResult Function(_Voided value) voided,
required TResult Function(_Checker value) checker,
required TResult Function(_Kitchen value) kitchen,
required TResult Function(_Bar value) bar,
required TResult Function(_SplitBill value) splitBill,
}) {
return kitchen(this);
}
@override
@optionalTypeArgs
TResult? mapOrNull<TResult extends Object?>({
TResult? Function(_Order value)? order,
TResult? Function(_Cashier value)? cashier,
TResult? Function(_Payment value)? payment,
TResult? Function(_Voided value)? voided,
TResult? Function(_Checker value)? checker,
TResult? Function(_Kitchen value)? kitchen,
TResult? Function(_Bar value)? bar,
TResult? Function(_SplitBill value)? splitBill,
}) {
return kitchen?.call(this);
}
@override
@optionalTypeArgs
TResult maybeMap<TResult extends Object?>({
TResult Function(_Order value)? order,
TResult Function(_Cashier value)? cashier,
TResult Function(_Payment value)? payment,
TResult Function(_Voided value)? voided,
TResult Function(_Checker value)? checker,
TResult Function(_Kitchen value)? kitchen,
TResult Function(_Bar value)? bar,
TResult Function(_SplitBill value)? splitBill,
required TResult orElse(),
}) {
if (kitchen != null) {
return kitchen(this);
}
return orElse();
}
}
abstract class _Kitchen implements PrintStruckEvent {
const factory _Kitchen(final Order order) = _$KitchenImpl;
@override
Order get order;
/// Create a copy of PrintStruckEvent
/// with the given fields replaced by the non-null parameter values.
@override
@JsonKey(includeFromJson: false, includeToJson: false)
_$$KitchenImplCopyWith<_$KitchenImpl> get copyWith =>
throw _privateConstructorUsedError;
}
/// @nodoc
abstract class _$$BarImplCopyWith<$Res>
implements $PrintStruckEventCopyWith<$Res> {
factory _$$BarImplCopyWith(_$BarImpl value, $Res Function(_$BarImpl) then) =
__$$BarImplCopyWithImpl<$Res>;
@override
@useResult
$Res call({Order order});
@override
$OrderCopyWith<$Res> get order;
}
/// @nodoc
class __$$BarImplCopyWithImpl<$Res>
extends _$PrintStruckEventCopyWithImpl<$Res, _$BarImpl>
implements _$$BarImplCopyWith<$Res> {
__$$BarImplCopyWithImpl(_$BarImpl _value, $Res Function(_$BarImpl) _then)
: super(_value, _then);
/// Create a copy of PrintStruckEvent
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline')
@override
$Res call({Object? order = null}) {
return _then(
_$BarImpl(
null == order
? _value.order
: order // ignore: cast_nullable_to_non_nullable
as Order,
),
);
}
}
/// @nodoc
class _$BarImpl implements _Bar {
const _$BarImpl(this.order);
@override
final Order order;
@override
String toString() {
return 'PrintStruckEvent.bar(order: $order)';
}
@override
bool operator ==(Object other) {
return identical(this, other) ||
(other.runtimeType == runtimeType &&
other is _$BarImpl &&
(identical(other.order, order) || other.order == order));
}
@override
int get hashCode => Object.hash(runtimeType, order);
/// Create a copy of PrintStruckEvent
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@override
@pragma('vm:prefer-inline')
_$$BarImplCopyWith<_$BarImpl> get copyWith =>
__$$BarImplCopyWithImpl<_$BarImpl>(this, _$identity);
@override
@optionalTypeArgs
TResult when<TResult extends Object?>({
required TResult Function(Order order) order,
required TResult Function(Order order) cashier,
required TResult Function(Order order) payment,
required TResult Function(Order order) voided,
required TResult Function(Order order) checker,
required TResult Function(Order order) kitchen,
required TResult Function(Order order) bar,
required TResult Function(Order order) splitBill,
}) {
return bar(this.order);
}
@override
@optionalTypeArgs
TResult? whenOrNull<TResult extends Object?>({
TResult? Function(Order order)? order,
TResult? Function(Order order)? cashier,
TResult? Function(Order order)? payment,
TResult? Function(Order order)? voided,
TResult? Function(Order order)? checker,
TResult? Function(Order order)? kitchen,
TResult? Function(Order order)? bar,
TResult? Function(Order order)? splitBill,
}) {
return bar?.call(this.order);
}
@override
@optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
TResult Function(Order order)? order,
TResult Function(Order order)? cashier,
TResult Function(Order order)? payment,
TResult Function(Order order)? voided,
TResult Function(Order order)? checker,
TResult Function(Order order)? kitchen,
TResult Function(Order order)? bar,
TResult Function(Order order)? splitBill,
required TResult orElse(),
}) {
if (bar != null) {
return bar(this.order);
}
return orElse();
}
@override
@optionalTypeArgs
TResult map<TResult extends Object?>({
required TResult Function(_Order value) order,
required TResult Function(_Cashier value) cashier,
required TResult Function(_Payment value) payment,
required TResult Function(_Voided value) voided,
required TResult Function(_Checker value) checker,
required TResult Function(_Kitchen value) kitchen,
required TResult Function(_Bar value) bar,
required TResult Function(_SplitBill value) splitBill,
}) {
return bar(this);
}
@override
@optionalTypeArgs
TResult? mapOrNull<TResult extends Object?>({
TResult? Function(_Order value)? order,
TResult? Function(_Cashier value)? cashier,
TResult? Function(_Payment value)? payment,
TResult? Function(_Voided value)? voided,
TResult? Function(_Checker value)? checker,
TResult? Function(_Kitchen value)? kitchen,
TResult? Function(_Bar value)? bar,
TResult? Function(_SplitBill value)? splitBill,
}) {
return bar?.call(this);
}
@override
@optionalTypeArgs
TResult maybeMap<TResult extends Object?>({
TResult Function(_Order value)? order,
TResult Function(_Cashier value)? cashier,
TResult Function(_Payment value)? payment,
TResult Function(_Voided value)? voided,
TResult Function(_Checker value)? checker,
TResult Function(_Kitchen value)? kitchen,
TResult Function(_Bar value)? bar,
TResult Function(_SplitBill value)? splitBill,
required TResult orElse(),
}) {
if (bar != null) {
return bar(this);
}
return orElse();
}
}
abstract class _Bar implements PrintStruckEvent {
const factory _Bar(final Order order) = _$BarImpl;
@override
Order get order;
/// Create a copy of PrintStruckEvent
/// with the given fields replaced by the non-null parameter values.
@override
@JsonKey(includeFromJson: false, includeToJson: false)
_$$BarImplCopyWith<_$BarImpl> get copyWith =>
throw _privateConstructorUsedError;
}
/// @nodoc /// @nodoc
abstract class _$$SplitBillImplCopyWith<$Res> abstract class _$$SplitBillImplCopyWith<$Res>
implements $PrintStruckEventCopyWith<$Res> { implements $PrintStruckEventCopyWith<$Res> {
@ -872,6 +1513,9 @@ class _$SplitBillImpl implements _SplitBill {
required TResult Function(Order order) cashier, required TResult Function(Order order) cashier,
required TResult Function(Order order) payment, required TResult Function(Order order) payment,
required TResult Function(Order order) voided, required TResult Function(Order order) voided,
required TResult Function(Order order) checker,
required TResult Function(Order order) kitchen,
required TResult Function(Order order) bar,
required TResult Function(Order order) splitBill, required TResult Function(Order order) splitBill,
}) { }) {
return splitBill(this.order); return splitBill(this.order);
@ -884,6 +1528,9 @@ class _$SplitBillImpl implements _SplitBill {
TResult? Function(Order order)? cashier, TResult? Function(Order order)? cashier,
TResult? Function(Order order)? payment, TResult? Function(Order order)? payment,
TResult? Function(Order order)? voided, TResult? Function(Order order)? voided,
TResult? Function(Order order)? checker,
TResult? Function(Order order)? kitchen,
TResult? Function(Order order)? bar,
TResult? Function(Order order)? splitBill, TResult? Function(Order order)? splitBill,
}) { }) {
return splitBill?.call(this.order); return splitBill?.call(this.order);
@ -896,6 +1543,9 @@ class _$SplitBillImpl implements _SplitBill {
TResult Function(Order order)? cashier, TResult Function(Order order)? cashier,
TResult Function(Order order)? payment, TResult Function(Order order)? payment,
TResult Function(Order order)? voided, TResult Function(Order order)? voided,
TResult Function(Order order)? checker,
TResult Function(Order order)? kitchen,
TResult Function(Order order)? bar,
TResult Function(Order order)? splitBill, TResult Function(Order order)? splitBill,
required TResult orElse(), required TResult orElse(),
}) { }) {
@ -912,6 +1562,9 @@ class _$SplitBillImpl implements _SplitBill {
required TResult Function(_Cashier value) cashier, required TResult Function(_Cashier value) cashier,
required TResult Function(_Payment value) payment, required TResult Function(_Payment value) payment,
required TResult Function(_Voided value) voided, required TResult Function(_Voided value) voided,
required TResult Function(_Checker value) checker,
required TResult Function(_Kitchen value) kitchen,
required TResult Function(_Bar value) bar,
required TResult Function(_SplitBill value) splitBill, required TResult Function(_SplitBill value) splitBill,
}) { }) {
return splitBill(this); return splitBill(this);
@ -924,6 +1577,9 @@ class _$SplitBillImpl implements _SplitBill {
TResult? Function(_Cashier value)? cashier, TResult? Function(_Cashier value)? cashier,
TResult? Function(_Payment value)? payment, TResult? Function(_Payment value)? payment,
TResult? Function(_Voided value)? voided, TResult? Function(_Voided value)? voided,
TResult? Function(_Checker value)? checker,
TResult? Function(_Kitchen value)? kitchen,
TResult? Function(_Bar value)? bar,
TResult? Function(_SplitBill value)? splitBill, TResult? Function(_SplitBill value)? splitBill,
}) { }) {
return splitBill?.call(this); return splitBill?.call(this);
@ -936,6 +1592,9 @@ class _$SplitBillImpl implements _SplitBill {
TResult Function(_Cashier value)? cashier, TResult Function(_Cashier value)? cashier,
TResult Function(_Payment value)? payment, TResult Function(_Payment value)? payment,
TResult Function(_Voided value)? voided, TResult Function(_Voided value)? voided,
TResult Function(_Checker value)? checker,
TResult Function(_Kitchen value)? kitchen,
TResult Function(_Bar value)? bar,
TResult Function(_SplitBill value)? splitBill, TResult Function(_SplitBill value)? splitBill,
required TResult orElse(), required TResult orElse(),
}) { }) {

View File

@ -6,5 +6,8 @@ class PrintStruckEvent with _$PrintStruckEvent {
const factory PrintStruckEvent.cashier(Order order) = _Cashier; const factory PrintStruckEvent.cashier(Order order) = _Cashier;
const factory PrintStruckEvent.payment(Order order) = _Payment; const factory PrintStruckEvent.payment(Order order) = _Payment;
const factory PrintStruckEvent.voided(Order order) = _Voided; const factory PrintStruckEvent.voided(Order order) = _Voided;
const factory PrintStruckEvent.checker(Order order) = _Checker;
const factory PrintStruckEvent.kitchen(Order order) = _Kitchen;
const factory PrintStruckEvent.bar(Order order) = _Bar;
const factory PrintStruckEvent.splitBill(Order order) = _SplitBill; const factory PrintStruckEvent.splitBill(Order order) = _SplitBill;
} }

View File

@ -4,7 +4,6 @@ import 'package:firebase_crashlytics/firebase_crashlytics.dart';
class CrashlyticsInterceptor extends Interceptor { class CrashlyticsInterceptor extends Interceptor {
@override @override
void onError(DioException err, ErrorInterceptorHandler handler) { void onError(DioException err, ErrorInterceptorHandler handler) {
// Log semua error ke Crashlytics
FirebaseCrashlytics.instance.recordError( FirebaseCrashlytics.instance.recordError(
err, err,
err.stackTrace, err.stackTrace,
@ -46,6 +45,32 @@ class CrashlyticsInterceptor extends Interceptor {
'Status Code: ${err.response?.statusCode ?? 'N/A'}', 'Status Code: ${err.response?.statusCode ?? 'N/A'}',
'Error Type: ${err.type.name}', 'Error Type: ${err.type.name}',
'Message: ${err.message ?? 'No message'}', 'Message: ${err.message ?? 'No message'}',
// Tambahan
'Request Data: ${_sanitizeData(err.requestOptions.data)}',
'Response Body: ${err.response?.data ?? 'No response'}',
'Headers: ${err.requestOptions.headers.entries.where((e) => e.key.toLowerCase() != 'authorization').toList()}',
]; ];
} }
/// Hindari log data sensitif
dynamic _sanitizeData(dynamic data) {
if (data == null) return 'No data';
if (data is Map) {
final sanitized = Map.from(data);
const sensitiveKeys = [
'password',
'token',
'secret',
'pin',
'card_number',
];
for (final key in sensitiveKeys) {
if (sanitized.containsKey(key)) {
sanitized[key] = '***';
}
}
return sanitized;
}
return data;
}
} }

View File

@ -25,6 +25,13 @@ abstract class IPrinterRepository {
Future<Either<PrinterFailure, Unit>> printStruckPayment({ Future<Either<PrinterFailure, Unit>> printStruckPayment({
required Order order, required Order order,
}); });
Future<Either<PrinterFailure, Unit>> printStruckChecker({
required Order order,
});
Future<Either<PrinterFailure, Unit>> printStruckKitchen({
required Order order,
});
Future<Either<PrinterFailure, Unit>> printStruckBar({required Order order});
Future<Either<PrinterFailure, Unit>> printStruckVoid({required Order order}); Future<Either<PrinterFailure, Unit>> printStruckVoid({required Order order});
Future<Either<PrinterFailure, Unit>> printStruckSplitBill({ Future<Either<PrinterFailure, Unit>> printStruckSplitBill({
required Order order, required Order order,

View File

@ -1044,4 +1044,31 @@ class PrinterRepository implements IPrinterRepository {
} }
return true; return true;
} }
@override
Future<Either<PrinterFailure, Unit>> printStruckBar({
required Order order,
}) async {
final outlet = await _outletLocalDatasource.currentOutlet();
final user = await _authLocalDataProvider.currentUser();
return _printBar(order: order, outlet: outlet, cashieName: user.name);
}
@override
Future<Either<PrinterFailure, Unit>> printStruckChecker({
required Order order,
}) async {
final outlet = await _outletLocalDatasource.currentOutlet();
final user = await _authLocalDataProvider.currentUser();
return _printChecker(order: order, outlet: outlet, cashieName: user.name);
}
@override
Future<Either<PrinterFailure, Unit>> printStruckKitchen({
required Order order,
}) async {
final outlet = await _outletLocalDatasource.currentOutlet();
final user = await _authLocalDataProvider.currentUser();
return _printKitchen(order: order, outlet: outlet, cashieName: user.name);
}
} }

View File

@ -475,7 +475,7 @@ class PrintUi {
paid: order.payments.last.amount.currencyFormatRpV2, paid: order.payments.last.amount.currencyFormatRpV2,
); );
bytes += builder.footer(message: 'Kasir'); bytes += builder.footer(message: 'Terima Kasih');
return bytes; return bytes;
} }

View File

@ -58,6 +58,66 @@ class OrderRightPanel extends StatelessWidget {
child: Row( child: Row(
mainAxisAlignment: MainAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.end,
children: [ children: [
PopupMenuButton<String>(
color: AppColor.white,
onSelected: (value) {
switch (value) {
case 'checker':
context.read<PrintStruckBloc>().add(
PrintStruckEvent.checker(state.selectedOrder!),
);
break;
case 'kitchen':
context.read<PrintStruckBloc>().add(
PrintStruckEvent.kitchen(state.selectedOrder!),
);
break;
case 'bar':
context.read<PrintStruckBloc>().add(
PrintStruckEvent.bar(state.selectedOrder!),
);
break;
}
},
itemBuilder: (context) => [
const PopupMenuItem(
value: 'checker',
child: Row(
children: [
Icon(Icons.receipt_outlined),
SizedBox(width: 8),
Text('Print Checker'),
],
),
),
const PopupMenuItem(
value: 'kitchen',
child: Row(
children: [
Icon(Icons.kitchen_outlined),
SizedBox(width: 8),
Text('Print Kitchen'),
],
),
),
const PopupMenuItem(
value: 'bar',
child: Row(
children: [
Icon(Icons.local_bar_outlined),
SizedBox(width: 8),
Text('Print Bar'),
],
),
),
],
child: const AppElevatedButton.outlined(
onPressed: null, // handled by PopupMenuButton
label: 'Print',
icon: Icon(Icons.print),
),
),
const SpaceWidth(8),
AppElevatedButton.outlined( AppElevatedButton.outlined(
onPressed: () { onPressed: () {
if (state.selectedOrder?.status == 'completed') { if (state.selectedOrder?.status == 'completed') {

View File

@ -189,10 +189,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: characters name: characters
sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.4.0" version: "1.4.1"
checked_yaml: checked_yaml:
dependency: transitive dependency: transitive
description: description:
@ -772,18 +772,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: matcher name: matcher
sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.12.17" version: "0.12.19"
material_color_utilities: material_color_utilities:
dependency: transitive dependency: transitive
description: description:
name: material_color_utilities name: material_color_utilities
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.11.1" version: "0.13.0"
meta: meta:
dependency: transitive dependency: transitive
description: description:
@ -1257,10 +1257,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55 sha256: "8161c84903fd860b26bfdefb7963b3f0b68fee7adea0f59ef805ecca346f0c7a"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.7.7" version: "0.7.10"
time: time:
dependency: transitive dependency: transitive
description: description:

View File

@ -3,7 +3,7 @@ description: "A new Flutter project."
publish_to: "none" publish_to: "none"
version: 1.0.0+4 version: 1.0.0+5
environment: environment:
sdk: ^3.8.1 sdk: ^3.8.1