first commit

This commit is contained in:
Aditya Siregar
2025-07-30 22:38:44 +07:00
commit 73320561b0
444 changed files with 64633 additions and 0 deletions
@@ -0,0 +1,82 @@
import 'package:bloc/bloc.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
import '../../../../data/datasources/settings_local_datasource.dart';
import '../../models/tax_model.dart';
part 'tax_settings_event.dart';
part 'tax_settings_state.dart';
part 'tax_settings_bloc.freezed.dart';
class TaxSettingsBloc extends Bloc<TaxSettingsEvent, TaxSettingsState> {
final SettingsLocalDatasource settingsLocalDatasource;
TaxSettingsBloc(this.settingsLocalDatasource) : super(const _Initial()) {
on<_LoadSettings>((event, emit) async {
emit(const _Loading());
try {
final tax = await settingsLocalDatasource.getTax();
final serviceCharge = await settingsLocalDatasource.getServiceCharge();
emit(_Loaded(
taxModel: tax,
serviceChargeValue: serviceCharge,
));
} catch (e) {
emit(_Error(e.toString()));
}
});
on<_SaveTax>((event, emit) async {
emit(const _Loading());
try {
await settingsLocalDatasource.saveTax(event.taxModel);
final serviceCharge = await settingsLocalDatasource.getServiceCharge();
emit(_Loaded(
taxModel: event.taxModel,
serviceChargeValue: serviceCharge,
));
} catch (e) {
emit(_Error(e.toString()));
}
});
on<_SaveServiceCharge>((event, emit) async {
emit(const _Loading());
try {
await settingsLocalDatasource.saveServiceCharge(event.serviceCharge);
final tax = await settingsLocalDatasource.getTax();
emit(_Loaded(
taxModel: tax,
serviceChargeValue: event.serviceCharge,
));
} catch (e) {
emit(_Error(e.toString()));
}
});
on<_UpdateSettings>((event, emit) async {
emit(const _Loading());
try {
// Create tax model
final taxModel = TaxModel(
name: 'Pajak PB1',
type: TaxType.pajak,
value: event.taxValue,
);
await settingsLocalDatasource.saveTax(taxModel);
await settingsLocalDatasource.saveServiceCharge(event.serviceChargeValue);
emit(_Loaded(
taxModel: taxModel,
serviceChargeValue: event.serviceChargeValue,
));
} catch (e) {
emit(_Error(e.toString()));
}
});
}
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,12 @@
part of 'tax_settings_bloc.dart';
@freezed
class TaxSettingsEvent with _$TaxSettingsEvent {
const factory TaxSettingsEvent.loadSettings() = _LoadSettings;
const factory TaxSettingsEvent.saveTax(TaxModel taxModel) = _SaveTax;
const factory TaxSettingsEvent.saveServiceCharge(int serviceCharge) = _SaveServiceCharge;
const factory TaxSettingsEvent.updateSettings({
required int taxValue,
required int serviceChargeValue,
}) = _UpdateSettings;
}
@@ -0,0 +1,12 @@
part of 'tax_settings_bloc.dart';
@freezed
class TaxSettingsState with _$TaxSettingsState {
const factory TaxSettingsState.initial() = _Initial;
const factory TaxSettingsState.loading() = _Loading;
const factory TaxSettingsState.loaded({
required TaxModel taxModel,
required int serviceChargeValue,
}) = _Loaded;
const factory TaxSettingsState.error(String message) = _Error;
}