diff --git a/lib/application/printer/print_struck/print_struck_bloc.dart b/lib/application/printer/print_struck/print_struck_bloc.dart index 63ccdee..7a52377 100644 --- a/lib/application/printer/print_struck/print_struck_bloc.dart +++ b/lib/application/printer/print_struck/print_struck_bloc.dart @@ -96,6 +96,54 @@ class PrintStruckBloc extends Bloc { order: e.order, ); + emit( + state.copyWith( + isPrinting: false, + failureOrPrintStruck: optionOf(failureOrSuccess), + ), + ); + }, + kitchen: (e) async { + Either 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 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 failureOrSuccess; + + emit(state.copyWith(isPrinting: true, failureOrPrintStruck: none())); + + failureOrSuccess = await _printerRepository.printStruckChecker( + order: e.order, + ); + emit( state.copyWith( isPrinting: false, diff --git a/lib/application/printer/print_struck/print_struck_bloc.freezed.dart b/lib/application/printer/print_struck/print_struck_bloc.freezed.dart index 856f8fd..9b700fd 100644 --- a/lib/application/printer/print_struck/print_struck_bloc.freezed.dart +++ b/lib/application/printer/print_struck/print_struck_bloc.freezed.dart @@ -24,6 +24,9 @@ mixin _$PrintStruckEvent { 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, }) => throw _privateConstructorUsedError; @optionalTypeArgs @@ -32,6 +35,9 @@ mixin _$PrintStruckEvent { 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, }) => throw _privateConstructorUsedError; @optionalTypeArgs @@ -40,6 +46,9 @@ mixin _$PrintStruckEvent { 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(), }) => throw _privateConstructorUsedError; @@ -49,6 +58,9 @@ mixin _$PrintStruckEvent { 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, }) => throw _privateConstructorUsedError; @optionalTypeArgs @@ -57,6 +69,9 @@ mixin _$PrintStruckEvent { 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, }) => throw _privateConstructorUsedError; @optionalTypeArgs @@ -65,6 +80,9 @@ mixin _$PrintStruckEvent { 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(), }) => throw _privateConstructorUsedError; @@ -204,6 +222,9 @@ class _$OrderImpl implements _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 order(this.order); @@ -216,6 +237,9 @@ class _$OrderImpl implements _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 order?.call(this.order); @@ -228,6 +252,9 @@ class _$OrderImpl implements _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(), }) { @@ -244,6 +271,9 @@ class _$OrderImpl implements _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 order(this); @@ -256,6 +286,9 @@ class _$OrderImpl implements _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 order?.call(this); @@ -268,6 +301,9 @@ class _$OrderImpl implements _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(), }) { @@ -371,6 +407,9 @@ class _$CashierImpl implements _Cashier { 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 cashier(this.order); @@ -383,6 +422,9 @@ class _$CashierImpl implements _Cashier { 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 cashier?.call(this.order); @@ -395,6 +437,9 @@ class _$CashierImpl implements _Cashier { 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(), }) { @@ -411,6 +456,9 @@ class _$CashierImpl implements _Cashier { 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 cashier(this); @@ -423,6 +471,9 @@ class _$CashierImpl implements _Cashier { 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 cashier?.call(this); @@ -435,6 +486,9 @@ class _$CashierImpl implements _Cashier { 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(), }) { @@ -538,6 +592,9 @@ class _$PaymentImpl implements _Payment { 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 payment(this.order); @@ -550,6 +607,9 @@ class _$PaymentImpl implements _Payment { 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 payment?.call(this.order); @@ -562,6 +622,9 @@ class _$PaymentImpl implements _Payment { 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(), }) { @@ -578,6 +641,9 @@ class _$PaymentImpl implements _Payment { 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 payment(this); @@ -590,6 +656,9 @@ class _$PaymentImpl implements _Payment { 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 payment?.call(this); @@ -602,6 +671,9 @@ class _$PaymentImpl implements _Payment { 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(), }) { @@ -705,6 +777,9 @@ class _$VoidedImpl implements _Voided { 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 voided(this.order); @@ -717,6 +792,9 @@ class _$VoidedImpl implements _Voided { 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 voided?.call(this.order); @@ -729,6 +807,9 @@ class _$VoidedImpl implements _Voided { 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(), }) { @@ -745,6 +826,9 @@ class _$VoidedImpl implements _Voided { 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 voided(this); @@ -757,6 +841,9 @@ class _$VoidedImpl implements _Voided { 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 voided?.call(this); @@ -769,6 +856,9 @@ class _$VoidedImpl implements _Voided { 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(), }) { @@ -793,6 +883,557 @@ abstract class _Voided implements PrintStruckEvent { 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({ + 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? 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 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({ + 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? 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 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({ + 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? 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 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({ + 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? 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 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({ + 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? 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 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({ + 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? 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 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 abstract class _$$SplitBillImplCopyWith<$Res> implements $PrintStruckEventCopyWith<$Res> { @@ -872,6 +1513,9 @@ class _$SplitBillImpl implements _SplitBill { 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 splitBill(this.order); @@ -884,6 +1528,9 @@ class _$SplitBillImpl implements _SplitBill { 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 splitBill?.call(this.order); @@ -896,6 +1543,9 @@ class _$SplitBillImpl implements _SplitBill { 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(), }) { @@ -912,6 +1562,9 @@ class _$SplitBillImpl implements _SplitBill { 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 splitBill(this); @@ -924,6 +1577,9 @@ class _$SplitBillImpl implements _SplitBill { 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 splitBill?.call(this); @@ -936,6 +1592,9 @@ class _$SplitBillImpl implements _SplitBill { 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(), }) { diff --git a/lib/application/printer/print_struck/print_struck_event.dart b/lib/application/printer/print_struck/print_struck_event.dart index 5ee6061..c85aed5 100644 --- a/lib/application/printer/print_struck/print_struck_event.dart +++ b/lib/application/printer/print_struck/print_struck_event.dart @@ -6,5 +6,8 @@ class PrintStruckEvent with _$PrintStruckEvent { const factory PrintStruckEvent.cashier(Order order) = _Cashier; const factory PrintStruckEvent.payment(Order order) = _Payment; 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; } diff --git a/lib/common/api/interceptors/crashlytic_interceptor.dart b/lib/common/api/interceptors/crashlytic_interceptor.dart index 969c063..aec8600 100644 --- a/lib/common/api/interceptors/crashlytic_interceptor.dart +++ b/lib/common/api/interceptors/crashlytic_interceptor.dart @@ -4,7 +4,6 @@ import 'package:firebase_crashlytics/firebase_crashlytics.dart'; class CrashlyticsInterceptor extends Interceptor { @override void onError(DioException err, ErrorInterceptorHandler handler) { - // Log semua error ke Crashlytics FirebaseCrashlytics.instance.recordError( err, err.stackTrace, @@ -46,6 +45,32 @@ class CrashlyticsInterceptor extends Interceptor { 'Status Code: ${err.response?.statusCode ?? 'N/A'}', 'Error Type: ${err.type.name}', '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; + } } diff --git a/lib/domain/printer/repositories/i_printer_repository.dart b/lib/domain/printer/repositories/i_printer_repository.dart index 61860f7..331859d 100644 --- a/lib/domain/printer/repositories/i_printer_repository.dart +++ b/lib/domain/printer/repositories/i_printer_repository.dart @@ -25,6 +25,13 @@ abstract class IPrinterRepository { Future> printStruckPayment({ required Order order, }); + Future> printStruckChecker({ + required Order order, + }); + Future> printStruckKitchen({ + required Order order, + }); + Future> printStruckBar({required Order order}); Future> printStruckVoid({required Order order}); Future> printStruckSplitBill({ required Order order, diff --git a/lib/infrastructure/printer/repositories/printer_repository.dart b/lib/infrastructure/printer/repositories/printer_repository.dart index 191f3b9..3e8236c 100644 --- a/lib/infrastructure/printer/repositories/printer_repository.dart +++ b/lib/infrastructure/printer/repositories/printer_repository.dart @@ -1044,4 +1044,31 @@ class PrinterRepository implements IPrinterRepository { } return true; } + + @override + Future> 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> 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> printStruckKitchen({ + required Order order, + }) async { + final outlet = await _outletLocalDatasource.currentOutlet(); + final user = await _authLocalDataProvider.currentUser(); + return _printKitchen(order: order, outlet: outlet, cashieName: user.name); + } } diff --git a/lib/presentation/components/print/print_ui.dart b/lib/presentation/components/print/print_ui.dart index 6ea550b..37d1e36 100644 --- a/lib/presentation/components/print/print_ui.dart +++ b/lib/presentation/components/print/print_ui.dart @@ -475,7 +475,7 @@ class PrintUi { paid: order.payments.last.amount.currencyFormatRpV2, ); - bytes += builder.footer(message: 'Kasir'); + bytes += builder.footer(message: 'Terima Kasih'); return bytes; } diff --git a/lib/presentation/pages/order/widgets/order_right_panel.dart b/lib/presentation/pages/order/widgets/order_right_panel.dart index 094418a..578519c 100644 --- a/lib/presentation/pages/order/widgets/order_right_panel.dart +++ b/lib/presentation/pages/order/widgets/order_right_panel.dart @@ -58,6 +58,66 @@ class OrderRightPanel extends StatelessWidget { child: Row( mainAxisAlignment: MainAxisAlignment.end, children: [ + PopupMenuButton( + color: AppColor.white, + onSelected: (value) { + switch (value) { + case 'checker': + context.read().add( + PrintStruckEvent.checker(state.selectedOrder!), + ); + break; + case 'kitchen': + context.read().add( + PrintStruckEvent.kitchen(state.selectedOrder!), + ); + break; + case 'bar': + context.read().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( onPressed: () { if (state.selectedOrder?.status == 'completed') { diff --git a/pubspec.lock b/pubspec.lock index 4818828..93232ec 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -189,10 +189,10 @@ packages: dependency: transitive description: name: characters - sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803 + sha256: faf38497bda5ead2a8c7615f4f7939df04333478bf32e4173fcb06d428b5716b url: "https://pub.dev" source: hosted - version: "1.4.0" + version: "1.4.1" checked_yaml: dependency: transitive description: @@ -772,18 +772,18 @@ packages: dependency: transitive description: name: matcher - sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2 + sha256: dc0b7dc7651697ea4ff3e69ef44b0407ea32c487a39fff6a4004fa585e901861 url: "https://pub.dev" source: hosted - version: "0.12.17" + version: "0.12.19" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec + sha256: "9c337007e82b1889149c82ed242ed1cb24a66044e30979c44912381e9be4c48b" url: "https://pub.dev" source: hosted - version: "0.11.1" + version: "0.13.0" meta: dependency: transitive description: @@ -1257,10 +1257,10 @@ packages: dependency: transitive description: name: test_api - sha256: ab2726c1a94d3176a45960b6234466ec367179b87dd74f1611adb1f3b5fb9d55 + sha256: "8161c84903fd860b26bfdefb7963b3f0b68fee7adea0f59ef805ecca346f0c7a" url: "https://pub.dev" source: hosted - version: "0.7.7" + version: "0.7.10" time: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index d83663a..f418c9d 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -3,7 +3,7 @@ description: "A new Flutter project." publish_to: "none" -version: 1.0.0+4 +version: 1.0.0+5 environment: sdk: ^3.8.1