finalcommitform4

This commit is contained in:
2026-02-19 16:09:54 +05:30
parent da8f9a4436
commit 9e9eb0f374
21 changed files with 799 additions and 234 deletions

View File

@@ -179,7 +179,7 @@ class ClientCreateOrderRepositoryImpl implements ClientCreateOrderRepositoryInte
.date(orderTimestamp)
.startDate(startTimestamp)
.endDate(endTimestamp)
.recurringDays(fdc.AnyValue(order.recurringDays))
.recurringDays(order.recurringDays)
.execute();
final String orderId = orderResult.data.order_insert.id;
@@ -274,7 +274,7 @@ class ClientCreateOrderRepositoryImpl implements ClientCreateOrderRepositoryInte
if (vendorId == null || vendorId.isEmpty) {
throw Exception('Vendor is missing.');
}
final domain.PermanentOrderHubDetails? hub = order.hub;
final domain.OneTimeOrderHubDetails? hub = order.hub;
if (hub == null || hub.id.isEmpty) {
throw Exception('Hub is missing.');
}
@@ -299,7 +299,7 @@ class ClientCreateOrderRepositoryImpl implements ClientCreateOrderRepositoryInte
.status(dc.OrderStatus.POSTED)
.date(orderTimestamp)
.startDate(startTimestamp)
.permanentDays(fdc.AnyValue(order.permanentDays))
.permanentDays(order.permanentDays)
.execute();
final String orderId = orderResult.data.order_insert.id;
@@ -311,7 +311,7 @@ class ClientCreateOrderRepositoryImpl implements ClientCreateOrderRepositoryInte
final Set<String> selectedDays = Set<String>.from(order.permanentDays);
final int workersNeeded = order.positions.fold<int>(
0,
(int sum, domain.PermanentOrderPosition position) => sum + position.count,
(int sum, domain.OneTimeOrderPosition position) => sum + position.count,
);
final double shiftCost = _calculatePermanentShiftCost(order);
@@ -352,7 +352,7 @@ class ClientCreateOrderRepositoryImpl implements ClientCreateOrderRepositoryInte
final String shiftId = shiftResult.data.shift_insert.id;
shiftIds.add(shiftId);
for (final domain.PermanentOrderPosition position in order.positions) {
for (final domain.OneTimeOrderPosition position in order.positions) {
final DateTime start = _parseTime(day, position.startTime);
final DateTime end = _parseTime(day, position.endTime);
final DateTime normalizedEnd =
@@ -420,7 +420,7 @@ class ClientCreateOrderRepositoryImpl implements ClientCreateOrderRepositoryInte
double _calculatePermanentShiftCost(domain.PermanentOrder order) {
double total = 0;
for (final domain.PermanentOrderPosition position in order.positions) {
for (final domain.OneTimeOrderPosition position in order.positions) {
final DateTime start = _parseTime(order.startDate, position.startTime);
final DateTime end = _parseTime(order.startDate, position.endTime);
final DateTime normalizedEnd =

View File

@@ -3,7 +3,7 @@ import 'package:krow_domain/krow_domain.dart';
import '../repositories/client_create_order_repository_interface.dart';
/// Use case for creating a permanent staffing order.
class CreatePermanentOrderUseCase implements UseCase<Future<void>, PermanentOrder> {
class CreatePermanentOrderUseCase implements UseCase<PermanentOrder, void> {
const CreatePermanentOrderUseCase(this._repository);
final ClientCreateOrderRepositoryInterface _repository;

View File

@@ -3,7 +3,7 @@ import 'package:krow_domain/krow_domain.dart';
import '../repositories/client_create_order_repository_interface.dart';
/// Use case for creating a recurring staffing order.
class CreateRecurringOrderUseCase implements UseCase<Future<void>, RecurringOrder> {
class CreateRecurringOrderUseCase implements UseCase<RecurringOrder, void> {
const CreateRecurringOrderUseCase(this._repository);
final ClientCreateOrderRepositoryInterface _repository;

View File

@@ -3,7 +3,6 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:krow_core/core.dart';
import 'package:krow_data_connect/krow_data_connect.dart' as dc;
import 'package:krow_domain/krow_domain.dart' as domain;
import '../../domain/arguments/permanent_order_arguments.dart';
import '../../domain/usecases/create_permanent_order_usecase.dart';
import 'permanent_order_event.dart';
import 'permanent_order_state.dart';
@@ -286,10 +285,9 @@ class PermanentOrderBloc extends Bloc<PermanentOrderEvent, PermanentOrderState>
final domain.PermanentOrder order = domain.PermanentOrder(
startDate: state.startDate,
permanentDays: state.permanentDays,
location: selectedHub.name,
positions: state.positions
.map(
(PermanentOrderPosition p) => domain.PermanentOrderPosition(
(PermanentOrderPosition p) => domain.OneTimeOrderPosition(
role: p.role,
count: p.count,
startTime: p.startTime,
@@ -299,7 +297,7 @@ class PermanentOrderBloc extends Bloc<PermanentOrderEvent, PermanentOrderState>
),
)
.toList(),
hub: domain.PermanentOrderHubDetails(
hub: domain.OneTimeOrderHubDetails(
id: selectedHub.id,
name: selectedHub.name,
address: selectedHub.address,
@@ -316,9 +314,7 @@ class PermanentOrderBloc extends Bloc<PermanentOrderEvent, PermanentOrderState>
vendorId: state.selectedVendor?.id,
roleRates: roleRates,
);
await _createPermanentOrderUseCase(
PermanentOrderArguments(order: order),
);
await _createPermanentOrderUseCase(order);
emit(state.copyWith(status: PermanentOrderStatus.success));
},
onError: (String errorKey) => state.copyWith(

View File

@@ -3,7 +3,6 @@ import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:krow_core/core.dart';
import 'package:krow_data_connect/krow_data_connect.dart' as dc;
import 'package:krow_domain/krow_domain.dart' as domain;
import '../../domain/arguments/recurring_order_arguments.dart';
import '../../domain/usecases/create_recurring_order_usecase.dart';
import 'recurring_order_event.dart';
import 'recurring_order_state.dart';
@@ -334,9 +333,7 @@ class RecurringOrderBloc extends Bloc<RecurringOrderEvent, RecurringOrderState>
vendorId: state.selectedVendor?.id,
roleRates: roleRates,
);
await _createRecurringOrderUseCase(
RecurringOrderArguments(order: order),
);
await _createRecurringOrderUseCase(order);
emit(state.copyWith(status: RecurringOrderStatus.success));
},
onError: (String errorKey) => state.copyWith(