refactor: replace InventoryModel with ProductModel across the application, removing unused inventory model files and updating related repository and UI components
This commit is contained in:
@@ -10,7 +10,6 @@ import 'package:rasadyar_chicken/data/models/response/dashboard_kill_house_free_
|
|||||||
import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart';
|
import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart';
|
import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/imported_loads_model/imported_loads_model.dart';
|
import 'package:rasadyar_chicken/data/models/response/imported_loads_model/imported_loads_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
|
import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart';
|
import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart';
|
||||||
@@ -27,7 +26,7 @@ import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_ar
|
|||||||
import 'package:rasadyar_core/core.dart';
|
import 'package:rasadyar_core/core.dart';
|
||||||
|
|
||||||
abstract class ChickenRemoteDatasource {
|
abstract class ChickenRemoteDatasource {
|
||||||
Future<List<InventoryModel>?> getInventory({
|
Future<List<ProductModel>?> getInventory({
|
||||||
required String token,
|
required String token,
|
||||||
required String role,
|
required String role,
|
||||||
CancelToken? cancelToken,
|
CancelToken? cancelToken,
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import 'package:rasadyar_chicken/data/models/response/dashboard_kill_house_free_
|
|||||||
import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart';
|
import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart';
|
import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/imported_loads_model/imported_loads_model.dart';
|
import 'package:rasadyar_chicken/data/models/response/imported_loads_model/imported_loads_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
|
import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart';
|
import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart';
|
||||||
@@ -34,7 +33,7 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
|
|||||||
ChickenRemoteDatasourceImp(this._httpClient);
|
ChickenRemoteDatasourceImp(this._httpClient);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<List<InventoryModel>?> getInventory({
|
Future<List<ProductModel>?> getInventory({
|
||||||
required String token,
|
required String token,
|
||||||
required String role,
|
required String role,
|
||||||
CancelToken? cancelToken,
|
CancelToken? cancelToken,
|
||||||
@@ -44,7 +43,7 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
|
|||||||
headers: {'Authorization': 'Bearer $token'},
|
headers: {'Authorization': 'Bearer $token'},
|
||||||
|
|
||||||
fromJsonList: (json) => (json)
|
fromJsonList: (json) => (json)
|
||||||
.map((item) => InventoryModel.fromJson(item as Map<String, dynamic>))
|
.map((item) => ProductModel.fromJson(item as Map<String, dynamic>))
|
||||||
.toList(),
|
.toList(),
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -586,5 +585,4 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
|
|||||||
|
|
||||||
return res.data;
|
return res.data;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,7 @@ import 'package:rasadyar_chicken/data/models/kill_house_module/warehouse_and_dis
|
|||||||
import 'package:rasadyar_core/core.dart';
|
import 'package:rasadyar_core/core.dart';
|
||||||
|
|
||||||
abstract class KillHouseRemoteDataSource {
|
abstract class KillHouseRemoteDataSource {
|
||||||
|
//region requestKill
|
||||||
//region requestKill
|
|
||||||
Future<List<KillHouseResponse>?> getKillHouseList({
|
Future<List<KillHouseResponse>?> getKillHouseList({
|
||||||
required String token,
|
required String token,
|
||||||
Map<String, dynamic>? queryParameters,
|
Map<String, dynamic>? queryParameters,
|
||||||
@@ -18,29 +17,29 @@ abstract class KillHouseRemoteDataSource {
|
|||||||
Map<String, dynamic>? queryParameters,
|
Map<String, dynamic>? queryParameters,
|
||||||
});
|
});
|
||||||
|
|
||||||
Future<void> submitKillHouseRequest({required String token, required Map<String, dynamic> data});
|
Future<void> submitKillHouseRequest({
|
||||||
|
required String token,
|
||||||
|
required Map<String, dynamic> data,
|
||||||
|
});
|
||||||
|
|
||||||
Future<List<listModel.KillRequestList>?> getListKillRequest({
|
Future<List<listModel.KillRequestList>?> getListKillRequest({
|
||||||
required String token,
|
required String token,
|
||||||
Map<String, dynamic>? queryParameters,
|
Map<String, dynamic>? queryParameters,
|
||||||
});
|
});
|
||||||
|
|
||||||
Future<void> deleteKillRequest({required String token, required int requestId});
|
Future<void> deleteKillRequest({
|
||||||
//endregion
|
required String token,
|
||||||
|
required int requestId,
|
||||||
//region warehouseAndDistribution
|
});
|
||||||
|
//endregion
|
||||||
Future<KillHouseSalesInfoDashboard?> getKillHouseSalesInfoDashboard({
|
|
||||||
required String token,
|
|
||||||
CancelToken? cancelToken,
|
|
||||||
Map<String, dynamic>? queryParameters,
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//endregion
|
|
||||||
|
|
||||||
|
|
||||||
|
//region warehouseAndDistribution
|
||||||
|
|
||||||
|
Future<KillHouseSalesInfoDashboard?> getKillHouseSalesInfoDashboard({
|
||||||
|
required String token,
|
||||||
|
CancelToken? cancelToken,
|
||||||
|
Map<String, dynamic>? queryParameters,
|
||||||
|
});
|
||||||
|
|
||||||
|
//endregion
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,14 +51,18 @@ Future<void> setupChickenDI() async {
|
|||||||
diChicken.registerLazySingleton<DioRemote>(
|
diChicken.registerLazySingleton<DioRemote>(
|
||||||
() => DioRemote(
|
() => DioRemote(
|
||||||
baseUrl: baseUrl,
|
baseUrl: baseUrl,
|
||||||
interceptors: diChicken.get<AppInterceptor>(instanceName: 'chickenInterceptor'),
|
interceptors: diChicken.get<AppInterceptor>(
|
||||||
|
instanceName: 'chickenInterceptor',
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
final dioRemote = diChicken.get<DioRemote>();
|
final dioRemote = diChicken.get<DioRemote>();
|
||||||
await dioRemote.init();
|
await dioRemote.init();
|
||||||
|
|
||||||
diChicken.registerLazySingleton<AuthRemoteDataSource>(() => AuthRemoteDataSourceImp(dioRemote));
|
diChicken.registerLazySingleton<AuthRemoteDataSource>(
|
||||||
|
() => AuthRemoteDataSourceImp(dioRemote),
|
||||||
|
);
|
||||||
|
|
||||||
diChicken.registerLazySingleton<AuthRepository>(
|
diChicken.registerLazySingleton<AuthRepository>(
|
||||||
() => AuthRepositoryImpl(diChicken.get<AuthRemoteDataSource>()),
|
() => AuthRepositoryImpl(diChicken.get<AuthRemoteDataSource>()),
|
||||||
@@ -68,7 +72,9 @@ Future<void> setupChickenDI() async {
|
|||||||
() => ChickenRemoteDatasourceImp(diChicken.get<DioRemote>()),
|
() => ChickenRemoteDatasourceImp(diChicken.get<DioRemote>()),
|
||||||
);
|
);
|
||||||
|
|
||||||
diChicken.registerLazySingleton<ChickenLocalDataSource>(() => ChickenLocalDataSourceImp());
|
diChicken.registerLazySingleton<ChickenLocalDataSource>(
|
||||||
|
() => ChickenLocalDataSourceImp(),
|
||||||
|
);
|
||||||
|
|
||||||
diChicken.registerLazySingleton<ChickenRepository>(
|
diChicken.registerLazySingleton<ChickenRepository>(
|
||||||
() => ChickenRepositoryImp(
|
() => ChickenRepositoryImp(
|
||||||
@@ -82,7 +88,9 @@ Future<void> setupChickenDI() async {
|
|||||||
);
|
);
|
||||||
|
|
||||||
diChicken.registerLazySingleton<PoultryScienceRepository>(
|
diChicken.registerLazySingleton<PoultryScienceRepository>(
|
||||||
() => PoultryScienceRepositoryImp(diChicken.get<PoultryScienceRemoteDatasource>()),
|
() => PoultryScienceRepositoryImp(
|
||||||
|
diChicken.get<PoultryScienceRemoteDatasource>(),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
//region kill house module DI
|
//region kill house module DI
|
||||||
@@ -90,7 +98,10 @@ Future<void> setupChickenDI() async {
|
|||||||
() => KillHouseRemoteDataSourceImpl(diChicken.get<DioRemote>()),
|
() => KillHouseRemoteDataSourceImpl(diChicken.get<DioRemote>()),
|
||||||
);
|
);
|
||||||
diChicken.registerLazySingleton<KillHouseRepository>(
|
diChicken.registerLazySingleton<KillHouseRepository>(
|
||||||
() => KillHouseRepositoryImpl(diChicken.get<KillHouseRemoteDataSource>()),
|
() => KillHouseRepositoryImpl(
|
||||||
|
diChicken.get<KillHouseRemoteDataSource>(),
|
||||||
|
diChicken.get<ChickenRepository>(),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
//endregion
|
//endregion
|
||||||
}
|
}
|
||||||
@@ -102,8 +113,12 @@ Future<void> newSetupAuthDI(String newUrl) async {
|
|||||||
await tokenService.saveBaseUrl(Module.chicken, newUrl);
|
await tokenService.saveBaseUrl(Module.chicken, newUrl);
|
||||||
|
|
||||||
// Re-register AppInterceptor
|
// Re-register AppInterceptor
|
||||||
if (diChicken.isRegistered<AppInterceptor>(instanceName: 'chickenInterceptor')) {
|
if (diChicken.isRegistered<AppInterceptor>(
|
||||||
await diChicken.unregister<AppInterceptor>(instanceName: 'chickenInterceptor');
|
instanceName: 'chickenInterceptor',
|
||||||
|
)) {
|
||||||
|
await diChicken.unregister<AppInterceptor>(
|
||||||
|
instanceName: 'chickenInterceptor',
|
||||||
|
);
|
||||||
}
|
}
|
||||||
diChicken.registerLazySingleton<AppInterceptor>(
|
diChicken.registerLazySingleton<AppInterceptor>(
|
||||||
() => AppInterceptor(
|
() => AppInterceptor(
|
||||||
@@ -126,16 +141,24 @@ Future<void> newSetupAuthDI(String newUrl) async {
|
|||||||
diChicken.registerLazySingleton<DioRemote>(
|
diChicken.registerLazySingleton<DioRemote>(
|
||||||
() => DioRemote(
|
() => DioRemote(
|
||||||
baseUrl: newUrl,
|
baseUrl: newUrl,
|
||||||
interceptors: diChicken.get<AppInterceptor>(instanceName: 'chickenInterceptor'),
|
interceptors: diChicken.get<AppInterceptor>(
|
||||||
|
instanceName: 'chickenInterceptor',
|
||||||
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
final dioRemote = diChicken.get<DioRemote>();
|
final dioRemote = diChicken.get<DioRemote>();
|
||||||
await dioRemote.init();
|
await dioRemote.init();
|
||||||
|
|
||||||
// Re-register dependent layers
|
// Re-register dependent layers
|
||||||
await reRegister<AuthRemoteDataSource>(() => AuthRemoteDataSourceImp(dioRemote));
|
await reRegister<AuthRemoteDataSource>(
|
||||||
await reRegister<AuthRepository>(() => AuthRepositoryImpl(diChicken.get<AuthRemoteDataSource>()));
|
() => AuthRemoteDataSourceImp(dioRemote),
|
||||||
await reRegister<ChickenRemoteDatasource>(() => ChickenRemoteDatasourceImp(dioRemote));
|
);
|
||||||
|
await reRegister<AuthRepository>(
|
||||||
|
() => AuthRepositoryImpl(diChicken.get<AuthRemoteDataSource>()),
|
||||||
|
);
|
||||||
|
await reRegister<ChickenRemoteDatasource>(
|
||||||
|
() => ChickenRemoteDatasourceImp(dioRemote),
|
||||||
|
);
|
||||||
await reRegister<ChickenLocalDataSource>(() => ChickenLocalDataSourceImp());
|
await reRegister<ChickenLocalDataSource>(() => ChickenLocalDataSourceImp());
|
||||||
await reRegister<ChickenRepository>(
|
await reRegister<ChickenRepository>(
|
||||||
() => ChickenRepositoryImp(
|
() => ChickenRepositoryImp(
|
||||||
@@ -148,7 +171,9 @@ Future<void> newSetupAuthDI(String newUrl) async {
|
|||||||
() => PoultryScienceRemoteDatasourceImp(dioRemote),
|
() => PoultryScienceRemoteDatasourceImp(dioRemote),
|
||||||
);
|
);
|
||||||
await reRegister<PoultryScienceRepository>(
|
await reRegister<PoultryScienceRepository>(
|
||||||
() => PoultryScienceRepositoryImp(diChicken.get<PoultryScienceRemoteDatasource>()),
|
() => PoultryScienceRepositoryImp(
|
||||||
|
diChicken.get<PoultryScienceRemoteDatasource>(),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,58 +0,0 @@
|
|||||||
import 'package:freezed_annotation/freezed_annotation.dart';
|
|
||||||
|
|
||||||
part 'inventory_model.freezed.dart';
|
|
||||||
part 'inventory_model.g.dart';
|
|
||||||
|
|
||||||
@freezed
|
|
||||||
abstract class InventoryModel with _$InventoryModel {
|
|
||||||
const factory InventoryModel({
|
|
||||||
int? id,
|
|
||||||
String? key,
|
|
||||||
String? createDate,
|
|
||||||
String? modifyDate,
|
|
||||||
bool? trash,
|
|
||||||
String? name,
|
|
||||||
int? provinceGovernmentalCarcassesQuantity,
|
|
||||||
int? provinceGovernmentalCarcassesWeight,
|
|
||||||
int? provinceFreeCarcassesQuantity,
|
|
||||||
int? provinceFreeCarcassesWeight,
|
|
||||||
int? receiveGovernmentalCarcassesQuantity,
|
|
||||||
int? receiveGovernmentalCarcassesWeight,
|
|
||||||
int? receiveFreeCarcassesQuantity,
|
|
||||||
int? receiveFreeCarcassesWeight,
|
|
||||||
int? freeBuyingCarcassesQuantity,
|
|
||||||
int? freeBuyingCarcassesWeight,
|
|
||||||
int? totalGovernmentalCarcassesQuantity,
|
|
||||||
int? totalGovernmentalCarcassesWeight,
|
|
||||||
int? totalFreeBarsCarcassesQuantity,
|
|
||||||
int? totalFreeBarsCarcassesWeight,
|
|
||||||
int? totalFreeRemainWeight,
|
|
||||||
int? totalGovernmentalRemainWeight,
|
|
||||||
double? weightAverage,
|
|
||||||
int? totalCarcassesQuantity,
|
|
||||||
int? totalCarcassesWeight,
|
|
||||||
int? freezingQuantity,
|
|
||||||
int? freezingWeight,
|
|
||||||
int? lossWeight,
|
|
||||||
int? outProvinceAllocatedQuantity,
|
|
||||||
int? outProvinceAllocatedWeight,
|
|
||||||
int? provinceAllocatedQuantity,
|
|
||||||
int? provinceAllocatedWeight,
|
|
||||||
int? realAllocatedQuantity,
|
|
||||||
int? realAllocatedWeight,
|
|
||||||
int? coldHouseAllocatedWeight,
|
|
||||||
int? posAllocatedWeight,
|
|
||||||
int? segmentationWeight,
|
|
||||||
int? totalRemainQuantity,
|
|
||||||
int? totalRemainWeight,
|
|
||||||
int? freePrice,
|
|
||||||
int? approvedPrice,
|
|
||||||
bool? approvedPriceStatus,
|
|
||||||
int? parentProduct,
|
|
||||||
int? killHouse,
|
|
||||||
int? guild,
|
|
||||||
}) = _InventoryModel; // Changed to _InventoryModel
|
|
||||||
|
|
||||||
factory InventoryModel.fromJson(Map<String, dynamic> json) =>
|
|
||||||
_$InventoryModelFromJson(json);
|
|
||||||
}
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -1,132 +0,0 @@
|
|||||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
|
||||||
|
|
||||||
part of 'inventory_model.dart';
|
|
||||||
|
|
||||||
// **************************************************************************
|
|
||||||
// JsonSerializableGenerator
|
|
||||||
// **************************************************************************
|
|
||||||
|
|
||||||
_InventoryModel _$InventoryModelFromJson(
|
|
||||||
Map<String, dynamic> json,
|
|
||||||
) => _InventoryModel(
|
|
||||||
id: (json['id'] as num?)?.toInt(),
|
|
||||||
key: json['key'] as String?,
|
|
||||||
createDate: json['create_date'] as String?,
|
|
||||||
modifyDate: json['modify_date'] as String?,
|
|
||||||
trash: json['trash'] as bool?,
|
|
||||||
name: json['name'] as String?,
|
|
||||||
provinceGovernmentalCarcassesQuantity:
|
|
||||||
(json['province_governmental_carcasses_quantity'] as num?)?.toInt(),
|
|
||||||
provinceGovernmentalCarcassesWeight:
|
|
||||||
(json['province_governmental_carcasses_weight'] as num?)?.toInt(),
|
|
||||||
provinceFreeCarcassesQuantity:
|
|
||||||
(json['province_free_carcasses_quantity'] as num?)?.toInt(),
|
|
||||||
provinceFreeCarcassesWeight: (json['province_free_carcasses_weight'] as num?)
|
|
||||||
?.toInt(),
|
|
||||||
receiveGovernmentalCarcassesQuantity:
|
|
||||||
(json['receive_governmental_carcasses_quantity'] as num?)?.toInt(),
|
|
||||||
receiveGovernmentalCarcassesWeight:
|
|
||||||
(json['receive_governmental_carcasses_weight'] as num?)?.toInt(),
|
|
||||||
receiveFreeCarcassesQuantity:
|
|
||||||
(json['receive_free_carcasses_quantity'] as num?)?.toInt(),
|
|
||||||
receiveFreeCarcassesWeight: (json['receive_free_carcasses_weight'] as num?)
|
|
||||||
?.toInt(),
|
|
||||||
freeBuyingCarcassesQuantity: (json['free_buying_carcasses_quantity'] as num?)
|
|
||||||
?.toInt(),
|
|
||||||
freeBuyingCarcassesWeight: (json['free_buying_carcasses_weight'] as num?)
|
|
||||||
?.toInt(),
|
|
||||||
totalGovernmentalCarcassesQuantity:
|
|
||||||
(json['total_governmental_carcasses_quantity'] as num?)?.toInt(),
|
|
||||||
totalGovernmentalCarcassesWeight:
|
|
||||||
(json['total_governmental_carcasses_weight'] as num?)?.toInt(),
|
|
||||||
totalFreeBarsCarcassesQuantity:
|
|
||||||
(json['total_free_bars_carcasses_quantity'] as num?)?.toInt(),
|
|
||||||
totalFreeBarsCarcassesWeight:
|
|
||||||
(json['total_free_bars_carcasses_weight'] as num?)?.toInt(),
|
|
||||||
totalFreeRemainWeight: (json['total_free_remain_weight'] as num?)?.toInt(),
|
|
||||||
totalGovernmentalRemainWeight:
|
|
||||||
(json['total_governmental_remain_weight'] as num?)?.toInt(),
|
|
||||||
weightAverage: (json['weight_average'] as num?)?.toDouble(),
|
|
||||||
totalCarcassesQuantity: (json['total_carcasses_quantity'] as num?)?.toInt(),
|
|
||||||
totalCarcassesWeight: (json['total_carcasses_weight'] as num?)?.toInt(),
|
|
||||||
freezingQuantity: (json['freezing_quantity'] as num?)?.toInt(),
|
|
||||||
freezingWeight: (json['freezing_weight'] as num?)?.toInt(),
|
|
||||||
lossWeight: (json['loss_weight'] as num?)?.toInt(),
|
|
||||||
outProvinceAllocatedQuantity:
|
|
||||||
(json['out_province_allocated_quantity'] as num?)?.toInt(),
|
|
||||||
outProvinceAllocatedWeight: (json['out_province_allocated_weight'] as num?)
|
|
||||||
?.toInt(),
|
|
||||||
provinceAllocatedQuantity: (json['province_allocated_quantity'] as num?)
|
|
||||||
?.toInt(),
|
|
||||||
provinceAllocatedWeight: (json['province_allocated_weight'] as num?)?.toInt(),
|
|
||||||
realAllocatedQuantity: (json['real_allocated_quantity'] as num?)?.toInt(),
|
|
||||||
realAllocatedWeight: (json['real_allocated_weight'] as num?)?.toInt(),
|
|
||||||
coldHouseAllocatedWeight: (json['cold_house_allocated_weight'] as num?)
|
|
||||||
?.toInt(),
|
|
||||||
posAllocatedWeight: (json['pos_allocated_weight'] as num?)?.toInt(),
|
|
||||||
segmentationWeight: (json['segmentation_weight'] as num?)?.toInt(),
|
|
||||||
totalRemainQuantity: (json['total_remain_quantity'] as num?)?.toInt(),
|
|
||||||
totalRemainWeight: (json['total_remain_weight'] as num?)?.toInt(),
|
|
||||||
freePrice: (json['free_price'] as num?)?.toInt(),
|
|
||||||
approvedPrice: (json['approved_price'] as num?)?.toInt(),
|
|
||||||
approvedPriceStatus: json['approved_price_status'] as bool?,
|
|
||||||
parentProduct: (json['parent_product'] as num?)?.toInt(),
|
|
||||||
killHouse: (json['kill_house'] as num?)?.toInt(),
|
|
||||||
guild: (json['guild'] as num?)?.toInt(),
|
|
||||||
);
|
|
||||||
|
|
||||||
Map<String, dynamic> _$InventoryModelToJson(
|
|
||||||
_InventoryModel instance,
|
|
||||||
) => <String, dynamic>{
|
|
||||||
'id': instance.id,
|
|
||||||
'key': instance.key,
|
|
||||||
'create_date': instance.createDate,
|
|
||||||
'modify_date': instance.modifyDate,
|
|
||||||
'trash': instance.trash,
|
|
||||||
'name': instance.name,
|
|
||||||
'province_governmental_carcasses_quantity':
|
|
||||||
instance.provinceGovernmentalCarcassesQuantity,
|
|
||||||
'province_governmental_carcasses_weight':
|
|
||||||
instance.provinceGovernmentalCarcassesWeight,
|
|
||||||
'province_free_carcasses_quantity': instance.provinceFreeCarcassesQuantity,
|
|
||||||
'province_free_carcasses_weight': instance.provinceFreeCarcassesWeight,
|
|
||||||
'receive_governmental_carcasses_quantity':
|
|
||||||
instance.receiveGovernmentalCarcassesQuantity,
|
|
||||||
'receive_governmental_carcasses_weight':
|
|
||||||
instance.receiveGovernmentalCarcassesWeight,
|
|
||||||
'receive_free_carcasses_quantity': instance.receiveFreeCarcassesQuantity,
|
|
||||||
'receive_free_carcasses_weight': instance.receiveFreeCarcassesWeight,
|
|
||||||
'free_buying_carcasses_quantity': instance.freeBuyingCarcassesQuantity,
|
|
||||||
'free_buying_carcasses_weight': instance.freeBuyingCarcassesWeight,
|
|
||||||
'total_governmental_carcasses_quantity':
|
|
||||||
instance.totalGovernmentalCarcassesQuantity,
|
|
||||||
'total_governmental_carcasses_weight':
|
|
||||||
instance.totalGovernmentalCarcassesWeight,
|
|
||||||
'total_free_bars_carcasses_quantity': instance.totalFreeBarsCarcassesQuantity,
|
|
||||||
'total_free_bars_carcasses_weight': instance.totalFreeBarsCarcassesWeight,
|
|
||||||
'total_free_remain_weight': instance.totalFreeRemainWeight,
|
|
||||||
'total_governmental_remain_weight': instance.totalGovernmentalRemainWeight,
|
|
||||||
'weight_average': instance.weightAverage,
|
|
||||||
'total_carcasses_quantity': instance.totalCarcassesQuantity,
|
|
||||||
'total_carcasses_weight': instance.totalCarcassesWeight,
|
|
||||||
'freezing_quantity': instance.freezingQuantity,
|
|
||||||
'freezing_weight': instance.freezingWeight,
|
|
||||||
'loss_weight': instance.lossWeight,
|
|
||||||
'out_province_allocated_quantity': instance.outProvinceAllocatedQuantity,
|
|
||||||
'out_province_allocated_weight': instance.outProvinceAllocatedWeight,
|
|
||||||
'province_allocated_quantity': instance.provinceAllocatedQuantity,
|
|
||||||
'province_allocated_weight': instance.provinceAllocatedWeight,
|
|
||||||
'real_allocated_quantity': instance.realAllocatedQuantity,
|
|
||||||
'real_allocated_weight': instance.realAllocatedWeight,
|
|
||||||
'cold_house_allocated_weight': instance.coldHouseAllocatedWeight,
|
|
||||||
'pos_allocated_weight': instance.posAllocatedWeight,
|
|
||||||
'segmentation_weight': instance.segmentationWeight,
|
|
||||||
'total_remain_quantity': instance.totalRemainQuantity,
|
|
||||||
'total_remain_weight': instance.totalRemainWeight,
|
|
||||||
'free_price': instance.freePrice,
|
|
||||||
'approved_price': instance.approvedPrice,
|
|
||||||
'approved_price_status': instance.approvedPriceStatus,
|
|
||||||
'parent_product': instance.parentProduct,
|
|
||||||
'kill_house': instance.killHouse,
|
|
||||||
'guild': instance.guild,
|
|
||||||
};
|
|
||||||
@@ -35,6 +35,8 @@ abstract class ProductModel with _$ProductModel {
|
|||||||
int? totalGovernmentalCarcassesWeight,
|
int? totalGovernmentalCarcassesWeight,
|
||||||
int? totalFreeBarsCarcassesQuantity,
|
int? totalFreeBarsCarcassesQuantity,
|
||||||
int? totalFreeBarsCarcassesWeight,
|
int? totalFreeBarsCarcassesWeight,
|
||||||
|
int? totalFreeRemainWeight,
|
||||||
|
int? totalGovernmentalRemainWeight,
|
||||||
double? weightAverage,
|
double? weightAverage,
|
||||||
int? totalCarcassesQuantity,
|
int? totalCarcassesQuantity,
|
||||||
int? totalCarcassesWeight,
|
int? totalCarcassesWeight,
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -53,6 +53,9 @@ _ProductModel _$ProductModelFromJson(
|
|||||||
(json['total_free_bars_carcasses_quantity'] as num?)?.toInt(),
|
(json['total_free_bars_carcasses_quantity'] as num?)?.toInt(),
|
||||||
totalFreeBarsCarcassesWeight:
|
totalFreeBarsCarcassesWeight:
|
||||||
(json['total_free_bars_carcasses_weight'] as num?)?.toInt(),
|
(json['total_free_bars_carcasses_weight'] as num?)?.toInt(),
|
||||||
|
totalFreeRemainWeight: (json['total_free_remain_weight'] as num?)?.toInt(),
|
||||||
|
totalGovernmentalRemainWeight:
|
||||||
|
(json['total_governmental_remain_weight'] as num?)?.toInt(),
|
||||||
weightAverage: (json['weight_average'] as num?)?.toDouble(),
|
weightAverage: (json['weight_average'] as num?)?.toDouble(),
|
||||||
totalCarcassesQuantity: (json['total_carcasses_quantity'] as num?)?.toInt(),
|
totalCarcassesQuantity: (json['total_carcasses_quantity'] as num?)?.toInt(),
|
||||||
totalCarcassesWeight: (json['total_carcasses_weight'] as num?)?.toInt(),
|
totalCarcassesWeight: (json['total_carcasses_weight'] as num?)?.toInt(),
|
||||||
@@ -113,6 +116,8 @@ Map<String, dynamic> _$ProductModelToJson(
|
|||||||
instance.totalGovernmentalCarcassesWeight,
|
instance.totalGovernmentalCarcassesWeight,
|
||||||
'total_free_bars_carcasses_quantity': instance.totalFreeBarsCarcassesQuantity,
|
'total_free_bars_carcasses_quantity': instance.totalFreeBarsCarcassesQuantity,
|
||||||
'total_free_bars_carcasses_weight': instance.totalFreeBarsCarcassesWeight,
|
'total_free_bars_carcasses_weight': instance.totalFreeBarsCarcassesWeight,
|
||||||
|
'total_free_remain_weight': instance.totalFreeRemainWeight,
|
||||||
|
'total_governmental_remain_weight': instance.totalGovernmentalRemainWeight,
|
||||||
'weight_average': instance.weightAverage,
|
'weight_average': instance.weightAverage,
|
||||||
'total_carcasses_quantity': instance.totalCarcassesQuantity,
|
'total_carcasses_quantity': instance.totalCarcassesQuantity,
|
||||||
'total_carcasses_weight': instance.totalCarcassesWeight,
|
'total_carcasses_weight': instance.totalCarcassesWeight,
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import 'package:rasadyar_chicken/data/models/response/dashboard_kill_house_free_
|
|||||||
import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart';
|
import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart';
|
import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/imported_loads_model/imported_loads_model.dart';
|
import 'package:rasadyar_chicken/data/models/response/imported_loads_model/imported_loads_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
|
import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart';
|
import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart';
|
||||||
@@ -32,13 +31,12 @@ abstract class ChickenRepository {
|
|||||||
//region Remote
|
//region Remote
|
||||||
|
|
||||||
//region Steward
|
//region Steward
|
||||||
Future<List<InventoryModel>?> getInventory({
|
Future<List<ProductModel>?> getInventory({
|
||||||
required String token,
|
required String token,
|
||||||
required String role,
|
required String role,
|
||||||
CancelToken? cancelToken,
|
CancelToken? cancelToken,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
Future<KillHouseDistributionInfo?> getKillHouseDistributionInfo({
|
Future<KillHouseDistributionInfo?> getKillHouseDistributionInfo({
|
||||||
required String token,
|
required String token,
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -13,7 +13,6 @@ import 'package:rasadyar_chicken/data/models/response/dashboard_kill_house_free_
|
|||||||
import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart';
|
import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart';
|
import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/imported_loads_model/imported_loads_model.dart';
|
import 'package:rasadyar_chicken/data/models/response/imported_loads_model/imported_loads_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
|
import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart';
|
import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart';
|
||||||
@@ -39,16 +38,19 @@ class ChickenRepositoryImp implements ChickenRepository {
|
|||||||
|
|
||||||
//region Remote
|
//region Remote
|
||||||
@override
|
@override
|
||||||
Future<List<InventoryModel>?> getInventory({
|
Future<List<ProductModel>?> getInventory({
|
||||||
required String token,
|
required String token,
|
||||||
required String role,
|
required String role,
|
||||||
CancelToken? cancelToken,
|
CancelToken? cancelToken,
|
||||||
}) async {
|
}) async {
|
||||||
var res = await remote.getInventory(token: token, role: role, cancelToken: cancelToken);
|
var res = await remote.getInventory(
|
||||||
|
token: token,
|
||||||
|
role: role,
|
||||||
|
cancelToken: cancelToken,
|
||||||
|
);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<KillHouseDistributionInfo?> getKillHouseDistributionInfo({
|
Future<KillHouseDistributionInfo?> getKillHouseDistributionInfo({
|
||||||
required String token,
|
required String token,
|
||||||
@@ -427,7 +429,9 @@ class ChickenRepositoryImp implements ChickenRepository {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<StewardRemainWeight?> getStewardRemainWeight({required String token}) async {
|
Future<StewardRemainWeight?> getStewardRemainWeight({
|
||||||
|
required String token,
|
||||||
|
}) async {
|
||||||
return await remote.getStewardRemainWeight(token: token);
|
return await remote.getStewardRemainWeight(token: token);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import 'package:rasadyar_chicken/data/models/kill_house_module/register_request/
|
|||||||
as listModel
|
as listModel
|
||||||
show KillRequestList;
|
show KillRequestList;
|
||||||
import 'package:rasadyar_chicken/data/models/kill_house_module/warehouse_and_distribution/response/kill_house_sales_info_dashboard.dart';
|
import 'package:rasadyar_chicken/data/models/kill_house_module/warehouse_and_distribution/response/kill_house_sales_info_dashboard.dart';
|
||||||
|
import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart';
|
||||||
import 'package:rasadyar_core/core.dart';
|
import 'package:rasadyar_core/core.dart';
|
||||||
|
|
||||||
abstract class KillHouseRepository {
|
abstract class KillHouseRepository {
|
||||||
@@ -43,5 +44,7 @@ abstract class KillHouseRepository {
|
|||||||
Map<String, dynamic>? queryParameters,
|
Map<String, dynamic>? queryParameters,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Future<BroadcastPrice?> getBroadcastPrice({required String token});
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,14 +5,17 @@ import 'package:rasadyar_chicken/data/models/kill_house_module/register_request/
|
|||||||
import 'package:rasadyar_chicken/data/models/kill_house_module/register_request/response/kill_request_list/kill_request_list.dart'
|
import 'package:rasadyar_chicken/data/models/kill_house_module/register_request/response/kill_request_list/kill_request_list.dart'
|
||||||
as listModel;
|
as listModel;
|
||||||
import 'package:rasadyar_chicken/data/models/kill_house_module/warehouse_and_distribution/response/kill_house_sales_info_dashboard.dart';
|
import 'package:rasadyar_chicken/data/models/kill_house_module/warehouse_and_distribution/response/kill_house_sales_info_dashboard.dart';
|
||||||
|
import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart';
|
||||||
import 'package:rasadyar_core/core.dart';
|
import 'package:rasadyar_core/core.dart';
|
||||||
|
|
||||||
|
import '../chicken/chicken_repository.dart';
|
||||||
import 'kill_house_repository.dart';
|
import 'kill_house_repository.dart';
|
||||||
|
|
||||||
class KillHouseRepositoryImpl extends KillHouseRepository {
|
class KillHouseRepositoryImpl extends KillHouseRepository {
|
||||||
final KillHouseRemoteDataSource remoteDataSource;
|
final KillHouseRemoteDataSource remoteDataSource;
|
||||||
|
final ChickenRepository chickenRepository;
|
||||||
|
|
||||||
KillHouseRepositoryImpl(this.remoteDataSource);
|
KillHouseRepositoryImpl(this.remoteDataSource, this.chickenRepository);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<List<KillHouseResponse>?> getKillHouseList({
|
Future<List<KillHouseResponse>?> getKillHouseList({
|
||||||
@@ -86,5 +89,10 @@ class KillHouseRepositoryImpl extends KillHouseRepository {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<BroadcastPrice?> getBroadcastPrice({required String token}) async {
|
||||||
|
return await chickenRepository.getBroadcastPrice(token: token);
|
||||||
|
}
|
||||||
|
|
||||||
//endregion
|
//endregion
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:rasadyar_chicken/data/di/chicken_di.dart';
|
import 'package:rasadyar_chicken/data/di/chicken_di.dart';
|
||||||
|
import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart';
|
||||||
import 'package:rasadyar_chicken/data/repositories/kill_house/kill_house_repository.dart';
|
import 'package:rasadyar_chicken/data/repositories/kill_house/kill_house_repository.dart';
|
||||||
import 'package:rasadyar_chicken/presentation/pages/common/profile/view.dart';
|
import 'package:rasadyar_chicken/presentation/pages/common/profile/view.dart';
|
||||||
import 'package:rasadyar_chicken/presentation/routes/pages.dart';
|
import 'package:rasadyar_chicken/presentation/routes/pages.dart';
|
||||||
@@ -13,6 +14,7 @@ class KillHouseRootLogic extends GetxController {
|
|||||||
var tokenService = Get.find<TokenStorageService>();
|
var tokenService = Get.find<TokenStorageService>();
|
||||||
|
|
||||||
late KillHouseRepository killHouseRepository;
|
late KillHouseRepository killHouseRepository;
|
||||||
|
Rxn<BroadcastPrice> broadcastPrice = Rxn<BroadcastPrice>();
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onInit() {
|
void onInit() {
|
||||||
@@ -26,8 +28,9 @@ class KillHouseRootLogic extends GetxController {
|
|||||||
onGenerateRoute: (settings) {
|
onGenerateRoute: (settings) {
|
||||||
final page = ChickenPages.pages.firstWhere(
|
final page = ChickenPages.pages.firstWhere(
|
||||||
(e) => e.name == settings.name,
|
(e) => e.name == settings.name,
|
||||||
orElse: () =>
|
orElse: () => ChickenPages.pages.firstWhere(
|
||||||
ChickenPages.pages.firstWhere((e) => e.name == ChickenRoutes.actionKillHouse),
|
(e) => e.name == ChickenRoutes.actionKillHouse,
|
||||||
|
),
|
||||||
);
|
);
|
||||||
|
|
||||||
return buildRouteFromGetPage(page);
|
return buildRouteFromGetPage(page);
|
||||||
@@ -52,4 +55,16 @@ class KillHouseRootLogic extends GetxController {
|
|||||||
void changePage(int i) {
|
void changePage(int i) {
|
||||||
currentPage.value = i;
|
currentPage.value = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> getBroadcastPrice() async {
|
||||||
|
safeCall(
|
||||||
|
call: () async => await killHouseRepository.getBroadcastPrice(
|
||||||
|
token: tokenService.accessToken.value!,
|
||||||
|
),
|
||||||
|
onSuccess: (result) {
|
||||||
|
broadcastPrice.value = result;
|
||||||
|
},
|
||||||
|
onError: (error, stacktrace) {},
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import 'package:flutter/cupertino.dart' hide LinearGradient;
|
import 'package:flutter/cupertino.dart' hide LinearGradient;
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
||||||
import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart';
|
import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart';
|
||||||
import 'package:rasadyar_chicken/presentation/widget/steward/widely_used/view.dart';
|
import 'package:rasadyar_chicken/presentation/widget/steward/widely_used/view.dart';
|
||||||
@@ -8,7 +7,8 @@ import 'package:rasadyar_core/core.dart';
|
|||||||
|
|
||||||
import 'logic.dart';
|
import 'logic.dart';
|
||||||
|
|
||||||
class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionHomeLogic> {
|
class WarehouseAndDistributionHomePage
|
||||||
|
extends GetView<WarehouseAndDistributionHomeLogic> {
|
||||||
const WarehouseAndDistributionHomePage({super.key});
|
const WarehouseAndDistributionHomePage({super.key});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -75,7 +75,10 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
AnimatedRotation(
|
AnimatedRotation(
|
||||||
turns: 180,
|
turns: 180,
|
||||||
duration: Duration(milliseconds: 3000),
|
duration: Duration(milliseconds: 3000),
|
||||||
child: Icon(CupertinoIcons.chevron_up, size: 18),
|
child: Icon(
|
||||||
|
CupertinoIcons.chevron_up,
|
||||||
|
size: 18,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -99,7 +102,9 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
Row(
|
Row(
|
||||||
spacing: 8,
|
spacing: 8,
|
||||||
mainAxisAlignment: MainAxisAlignment.end,
|
mainAxisAlignment: MainAxisAlignment.end,
|
||||||
children: [Icon(CupertinoIcons.chevron_down, size: 18)],
|
children: [
|
||||||
|
Icon(CupertinoIcons.chevron_down, size: 18),
|
||||||
|
],
|
||||||
),
|
),
|
||||||
_todayShipmentWidget(),
|
_todayShipmentWidget(),
|
||||||
_todayShipmentWidget2(),
|
_todayShipmentWidget2(),
|
||||||
@@ -127,12 +132,17 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
Assets.vec.chicken2Svg.svg(
|
Assets.vec.chicken2Svg.svg(
|
||||||
width: 24.w,
|
width: 24.w,
|
||||||
height: 24.h,
|
height: 24.h,
|
||||||
colorFilter: ColorFilter.mode(AppColor.blueDark, BlendMode.srcIn),
|
colorFilter: ColorFilter.mode(
|
||||||
|
AppColor.blueDark,
|
||||||
|
BlendMode.srcIn,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
'اطلاعات مرغ گرم',
|
'اطلاعات مرغ گرم',
|
||||||
textAlign: TextAlign.right,
|
textAlign: TextAlign.right,
|
||||||
style: AppFonts.yekan16Bold.copyWith(color: AppColor.iconColor),
|
style: AppFonts.yekan16Bold.copyWith(
|
||||||
|
color: AppColor.iconColor,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -151,7 +161,11 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(width: 5.w),
|
SizedBox(width: 5.w),
|
||||||
Text('اطلاعات پخش', textAlign: TextAlign.right, style: AppFonts.yekan16),
|
Text(
|
||||||
|
'اطلاعات پخش',
|
||||||
|
textAlign: TextAlign.right,
|
||||||
|
style: AppFonts.yekan16,
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
SizedBox(height: 8.h),
|
SizedBox(height: 8.h),
|
||||||
@@ -164,7 +178,8 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
title: 'وزن دولتی',
|
title: 'وزن دولتی',
|
||||||
titleBgColor: const Color(0xFFB8E7DC),
|
titleBgColor: const Color(0xFFB8E7DC),
|
||||||
valueBgColor: const Color(0xFFE6FAF5),
|
valueBgColor: const Color(0xFFE6FAF5),
|
||||||
value: data.value?.totalGovernmentalInputWeight.separatedByComma,
|
value:
|
||||||
|
data.value?.totalGovernmentalInputWeight.separatedByComma,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
@@ -178,7 +193,10 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
Expanded(
|
Expanded(
|
||||||
child: broadcastItem(
|
child: broadcastItem(
|
||||||
title: 'فروش دولتی',
|
title: 'فروش دولتی',
|
||||||
value: data.value?.totalGovernmentalOutputWeight.separatedByComma,
|
value: data
|
||||||
|
.value
|
||||||
|
?.totalGovernmentalOutputWeight
|
||||||
|
.separatedByComma,
|
||||||
titleBgColor: const Color(0xFFEBC4CE),
|
titleBgColor: const Color(0xFFEBC4CE),
|
||||||
valueBgColor: const Color(0xFFEDDCE0),
|
valueBgColor: const Color(0xFFEDDCE0),
|
||||||
),
|
),
|
||||||
@@ -202,7 +220,10 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
Expanded(
|
Expanded(
|
||||||
child: broadcastItem(
|
child: broadcastItem(
|
||||||
title: 'مانده دولتی',
|
title: 'مانده دولتی',
|
||||||
value: data.value?.totalGovernmentalRemainWeight.separatedByComma,
|
value: data
|
||||||
|
.value
|
||||||
|
?.totalGovernmentalRemainWeight
|
||||||
|
.separatedByComma,
|
||||||
titleBgColor: const Color(0xFFB8E7DC),
|
titleBgColor: const Color(0xFFB8E7DC),
|
||||||
valueBgColor: const Color(0xFFE6FAF5),
|
valueBgColor: const Color(0xFFE6FAF5),
|
||||||
),
|
),
|
||||||
@@ -218,7 +239,10 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
Expanded(
|
Expanded(
|
||||||
child: broadcastItem(
|
child: broadcastItem(
|
||||||
title: 'فروش خارج استان',
|
title: 'فروش خارج استان',
|
||||||
value: data.value?.totalStewardFreeSaleBarCarcassesWeight.separatedByComma,
|
value: data
|
||||||
|
.value
|
||||||
|
?.totalStewardFreeSaleBarCarcassesWeight
|
||||||
|
.separatedByComma,
|
||||||
titleBgColor: const Color(0xFFEBC4CE),
|
titleBgColor: const Color(0xFFEBC4CE),
|
||||||
valueBgColor: const Color(0xFFEDDCE0),
|
valueBgColor: const Color(0xFFEDDCE0),
|
||||||
),
|
),
|
||||||
@@ -242,7 +266,8 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
child: _informationIconCard(
|
child: _informationIconCard(
|
||||||
title: 'توزیع داخل استان',
|
title: 'توزیع داخل استان',
|
||||||
isLoading: data.value == null,
|
isLoading: data.value == null,
|
||||||
description: data.value?.freeSalesWeight.separatedByCommaFa ?? '0',
|
description:
|
||||||
|
data.value?.freeSalesWeight.separatedByCommaFa ?? '0',
|
||||||
iconPath: Assets.vec.truckSvg.path,
|
iconPath: Assets.vec.truckSvg.path,
|
||||||
iconColor: const Color.fromRGBO(85, 97, 93, 1),
|
iconColor: const Color.fromRGBO(85, 97, 93, 1),
|
||||||
bgDescriptionColor: const Color(0xFFE6FAF5),
|
bgDescriptionColor: const Color(0xFFE6FAF5),
|
||||||
@@ -253,7 +278,9 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
child: _informationIconCard(
|
child: _informationIconCard(
|
||||||
title: 'توزیع خارج استان',
|
title: 'توزیع خارج استان',
|
||||||
isLoading: data.value == null,
|
isLoading: data.value == null,
|
||||||
description: data.value?.stewardAllocationsWeight.separatedByCommaFa ?? '0',
|
description:
|
||||||
|
data.value?.stewardAllocationsWeight.separatedByCommaFa ??
|
||||||
|
'0',
|
||||||
iconPath: Assets.vec.truckFastSvg.path,
|
iconPath: Assets.vec.truckFastSvg.path,
|
||||||
iconColor: Color(0xFF647379),
|
iconColor: Color(0xFF647379),
|
||||||
bgDescriptionColor: const Color(0xFFEAEFFF),
|
bgDescriptionColor: const Color(0xFFEAEFFF),
|
||||||
@@ -302,7 +329,9 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
child: _informationLabelCard(
|
child: _informationLabelCard(
|
||||||
title: 'خارج استان',
|
title: 'خارج استان',
|
||||||
isLoading: data.value == null,
|
isLoading: data.value == null,
|
||||||
description: data.value?.freeBuyingCarcassesWeight.separatedByCommaFa ?? '0',
|
description:
|
||||||
|
data.value?.freeBuyingCarcassesWeight.separatedByCommaFa ??
|
||||||
|
'0',
|
||||||
iconPath: Assets.vec.cubeSearchSvg.path,
|
iconPath: Assets.vec.cubeSearchSvg.path,
|
||||||
iconColor: Color(0xFF2D5FFF),
|
iconColor: Color(0xFF2D5FFF),
|
||||||
bgLabelColor: const Color(0xFFAFCBFF),
|
bgLabelColor: const Color(0xFFAFCBFF),
|
||||||
@@ -326,7 +355,8 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
child: _informationLabelCard(
|
child: _informationLabelCard(
|
||||||
title: 'مانده انبار',
|
title: 'مانده انبار',
|
||||||
isLoading: data.value == null,
|
isLoading: data.value == null,
|
||||||
description: data.value?.totalRemainWeight.separatedByCommaFa ?? '0',
|
description:
|
||||||
|
data.value?.totalRemainWeight.separatedByCommaFa ?? '0',
|
||||||
iconPath: Assets.vec.cubeSearchSvg.path,
|
iconPath: Assets.vec.cubeSearchSvg.path,
|
||||||
bgDescriptionColor: const Color(0xFFEAEFFF),
|
bgDescriptionColor: const Color(0xFFEAEFFF),
|
||||||
bgLabelColor: const Color(0xFFBDD4FF),
|
bgLabelColor: const Color(0xFFBDD4FF),
|
||||||
@@ -337,7 +367,8 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
child: _informationLabelCard(
|
child: _informationLabelCard(
|
||||||
title: 'توزیع شده',
|
title: 'توزیع شده',
|
||||||
isLoading: data.value == null,
|
isLoading: data.value == null,
|
||||||
description: data.value?.realAllocatedWeight.separatedByCommaFa ?? '0',
|
description:
|
||||||
|
data.value?.realAllocatedWeight.separatedByCommaFa ?? '0',
|
||||||
iconPath: Assets.vec.cubeRotateSvg.path,
|
iconPath: Assets.vec.cubeRotateSvg.path,
|
||||||
iconColor: Color(0xFF5C4D64),
|
iconColor: Color(0xFF5C4D64),
|
||||||
bgLabelColor: Color(0xFFC8B8D1),
|
bgLabelColor: Color(0xFFC8B8D1),
|
||||||
@@ -375,7 +406,10 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
child: Assets.vec.cubeScanSvg.svg(
|
child: Assets.vec.cubeScanSvg.svg(
|
||||||
width: 12.w,
|
width: 12.w,
|
||||||
height: 12.h,
|
height: 12.h,
|
||||||
colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
|
colorFilter: const ColorFilter.mode(
|
||||||
|
Colors.white,
|
||||||
|
BlendMode.srcIn,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
bgDescriptionColor: Colors.white,
|
bgDescriptionColor: Colors.white,
|
||||||
@@ -395,7 +429,8 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
title: 'درانتظار',
|
title: 'درانتظار',
|
||||||
borderColor: const Color(0xFF9758FF),
|
borderColor: const Color(0xFF9758FF),
|
||||||
isLoading: data.value == null,
|
isLoading: data.value == null,
|
||||||
description: data.value?.totalNotEnteredBars.separatedByCommaFa ?? '0',
|
description:
|
||||||
|
data.value?.totalNotEnteredBars.separatedByCommaFa ?? '0',
|
||||||
unit:
|
unit:
|
||||||
'(${data.value?.totalNotEnteredKillHouseRequestsWeight.separatedByCommaFa})\nکیلوگرم',
|
'(${data.value?.totalNotEnteredKillHouseRequestsWeight.separatedByCommaFa})\nکیلوگرم',
|
||||||
icon: Container(
|
icon: Container(
|
||||||
@@ -409,7 +444,10 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
child: Assets.vec.cubeCardFreeSvg.svg(
|
child: Assets.vec.cubeCardFreeSvg.svg(
|
||||||
width: 12.w,
|
width: 12.w,
|
||||||
height: 12.h,
|
height: 12.h,
|
||||||
colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
|
colorFilter: const ColorFilter.mode(
|
||||||
|
Colors.white,
|
||||||
|
BlendMode.srcIn,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
bgDescriptionColor: Colors.white,
|
bgDescriptionColor: Colors.white,
|
||||||
@@ -437,7 +475,12 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
child: _informationLabelCard(
|
child: _informationLabelCard(
|
||||||
title: 'مانده دولتی',
|
title: 'مانده دولتی',
|
||||||
isLoading: data.value == null,
|
isLoading: data.value == null,
|
||||||
description: data.value?.totalGovernmentalRemainWeight?.separatedByCommaFa ?? '0',
|
description:
|
||||||
|
data
|
||||||
|
.value
|
||||||
|
?.totalGovernmentalRemainWeight
|
||||||
|
?.separatedByCommaFa ??
|
||||||
|
'0',
|
||||||
iconPath: Assets.vec.cubeCardGovermentSvg.path,
|
iconPath: Assets.vec.cubeCardGovermentSvg.path,
|
||||||
iconColor: AppColor.textColor,
|
iconColor: AppColor.textColor,
|
||||||
bgDescriptionColor: const Color(0xFFF5ECEE),
|
bgDescriptionColor: const Color(0xFFF5ECEE),
|
||||||
@@ -448,7 +491,8 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
child: _informationLabelCard(
|
child: _informationLabelCard(
|
||||||
title: 'مانده آزاد',
|
title: 'مانده آزاد',
|
||||||
isLoading: data.value == null,
|
isLoading: data.value == null,
|
||||||
description: data.value?.totalFreeRemainWeight.separatedByCommaFa ?? '0',
|
description:
|
||||||
|
data.value?.totalFreeRemainWeight.separatedByCommaFa ?? '0',
|
||||||
unit: 'کیلوگرم',
|
unit: 'کیلوگرم',
|
||||||
iconPath: Assets.vec.cubeCardFreeSvg.path,
|
iconPath: Assets.vec.cubeCardFreeSvg.path,
|
||||||
iconColor: AppColor.textColor,
|
iconColor: AppColor.textColor,
|
||||||
@@ -496,7 +540,10 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
),
|
),
|
||||||
Divider(),
|
Divider(),
|
||||||
|
|
||||||
inventoryListItem(title: 'کل فروش', value: model.realAllocatedWeight?.separatedByComma),
|
inventoryListItem(
|
||||||
|
title: 'کل فروش',
|
||||||
|
value: model.realAllocatedWeight?.separatedByComma,
|
||||||
|
),
|
||||||
Divider(),
|
Divider(),
|
||||||
inventoryListItem(
|
inventoryListItem(
|
||||||
title: 'مانده انبار',
|
title: 'مانده انبار',
|
||||||
@@ -515,14 +562,25 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
children: [
|
children: [
|
||||||
Text(
|
Text(
|
||||||
title,
|
title,
|
||||||
style: AppFonts.yekan14.copyWith(color: const Color(0xFF353535), height: 1.2),
|
style: AppFonts.yekan14.copyWith(
|
||||||
|
color: const Color(0xFF353535),
|
||||||
|
height: 1.2,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
Spacer(),
|
Spacer(),
|
||||||
value == null
|
value == null
|
||||||
? Center(child: CupertinoActivityIndicator())
|
? Center(child: CupertinoActivityIndicator())
|
||||||
: Text(value, style: AppFonts.yekan14.copyWith(color: const Color(0xFF353535))),
|
: Text(
|
||||||
|
value,
|
||||||
|
style: AppFonts.yekan14.copyWith(
|
||||||
|
color: const Color(0xFF353535),
|
||||||
|
),
|
||||||
|
),
|
||||||
SizedBox(width: 20.w),
|
SizedBox(width: 20.w),
|
||||||
Text('کیلوگرم', style: AppFonts.yekan10.copyWith(color: const Color(0xFF353535))),
|
Text(
|
||||||
|
'کیلوگرم',
|
||||||
|
style: AppFonts.yekan10.copyWith(color: const Color(0xFF353535)),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@@ -546,7 +604,9 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
height: 65.h,
|
height: 65.h,
|
||||||
decoration: BoxDecoration(
|
decoration: BoxDecoration(
|
||||||
borderRadius: BorderRadius.circular(8),
|
borderRadius: BorderRadius.circular(8),
|
||||||
border: borderColor != null ? Border.all(width: 1, color: borderColor) : null,
|
border: borderColor != null
|
||||||
|
? Border.all(width: 1, color: borderColor)
|
||||||
|
: null,
|
||||||
),
|
),
|
||||||
clipBehavior: Clip.hardEdge,
|
clipBehavior: Clip.hardEdge,
|
||||||
child: Row(
|
child: Row(
|
||||||
@@ -605,12 +665,16 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
Text(
|
Text(
|
||||||
description,
|
description,
|
||||||
textAlign: TextAlign.right,
|
textAlign: TextAlign.right,
|
||||||
style: AppFonts.yekan16.copyWith(color: AppColor.mediumGreyDarkActive),
|
style: AppFonts.yekan16.copyWith(
|
||||||
|
color: AppColor.mediumGreyDarkActive,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
unit,
|
unit,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: AppFonts.yekan12.copyWith(color: AppColor.mediumGreyDarkActive),
|
style: AppFonts.yekan12.copyWith(
|
||||||
|
color: AppColor.mediumGreyDarkActive,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -656,7 +720,9 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
Text(
|
Text(
|
||||||
title,
|
title,
|
||||||
textAlign: TextAlign.right,
|
textAlign: TextAlign.right,
|
||||||
style: AppFonts.yekan14.copyWith(color: AppColor.mediumGreyDarkActive),
|
style: AppFonts.yekan14.copyWith(
|
||||||
|
color: AppColor.mediumGreyDarkActive,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
|
|
||||||
isLoading
|
isLoading
|
||||||
@@ -664,12 +730,16 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
: Text(
|
: Text(
|
||||||
description,
|
description,
|
||||||
textAlign: TextAlign.right,
|
textAlign: TextAlign.right,
|
||||||
style: AppFonts.yekan16.copyWith(color: AppColor.mediumGreyDarkActive),
|
style: AppFonts.yekan16.copyWith(
|
||||||
|
color: AppColor.mediumGreyDarkActive,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
Text(
|
Text(
|
||||||
unit,
|
unit,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: AppFonts.yekan12.copyWith(color: AppColor.mediumGreyDarkActive),
|
style: AppFonts.yekan12.copyWith(
|
||||||
|
color: AppColor.mediumGreyDarkActive,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -704,7 +774,7 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
Widget inventoryItem({
|
Widget inventoryItem({
|
||||||
required bool isExpanded,
|
required bool isExpanded,
|
||||||
required int index,
|
required int index,
|
||||||
required InventoryModel model,
|
required ProductModel model,
|
||||||
}) {
|
}) {
|
||||||
return Column(
|
return Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
@@ -729,8 +799,14 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
'کل ورودی به انبار (کیلوگرم)',
|
'کل ورودی به انبار (کیلوگرم)',
|
||||||
model.totalFreeBarsCarcassesWeight.toString(),
|
model.totalFreeBarsCarcassesWeight.toString(),
|
||||||
),
|
),
|
||||||
buildRow('کل فروش (کیلوگرم)', model.realAllocatedWeight.toString()),
|
buildRow(
|
||||||
buildRow('مانده انبار (کیلوگرم)', model.totalRemainWeight.toString()),
|
'کل فروش (کیلوگرم)',
|
||||||
|
model.realAllocatedWeight.toString(),
|
||||||
|
),
|
||||||
|
buildRow(
|
||||||
|
'مانده انبار (کیلوگرم)',
|
||||||
|
model.totalRemainWeight.toString(),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
@@ -749,7 +825,9 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
child: Text(
|
child: Text(
|
||||||
title,
|
title,
|
||||||
textAlign: TextAlign.right,
|
textAlign: TextAlign.right,
|
||||||
style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDarkHover),
|
style: AppFonts.yekan14.copyWith(
|
||||||
|
color: AppColor.darkGreyDarkHover,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
Flexible(
|
Flexible(
|
||||||
@@ -757,7 +835,9 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
child: Text(
|
child: Text(
|
||||||
value,
|
value,
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: AppFonts.yekan14.copyWith(color: AppColor.darkGreyDarkHover),
|
style: AppFonts.yekan14.copyWith(
|
||||||
|
color: AppColor.darkGreyDarkHover,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@@ -783,7 +863,9 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
Text(
|
Text(
|
||||||
'اطلاعات ارسالی',
|
'اطلاعات ارسالی',
|
||||||
textAlign: TextAlign.right,
|
textAlign: TextAlign.right,
|
||||||
style: AppFonts.yekan16Bold.copyWith(color: AppColor.blueNormal),
|
style: AppFonts.yekan16Bold.copyWith(
|
||||||
|
color: AppColor.blueNormal,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 12),
|
const SizedBox(height: 12),
|
||||||
buildRow(
|
buildRow(
|
||||||
@@ -816,7 +898,10 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
return Container(
|
return Container(
|
||||||
height: height?.h ?? 73.h,
|
height: height?.h ?? 73.h,
|
||||||
clipBehavior: Clip.hardEdge,
|
clipBehavior: Clip.hardEdge,
|
||||||
decoration: BoxDecoration(color: valueBgColor, borderRadius: BorderRadius.circular(8)),
|
decoration: BoxDecoration(
|
||||||
|
color: valueBgColor,
|
||||||
|
borderRadius: BorderRadius.circular(8),
|
||||||
|
),
|
||||||
child: Column(
|
child: Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
mainAxisAlignment: MainAxisAlignment.spaceAround,
|
||||||
children: [
|
children: [
|
||||||
@@ -829,7 +914,9 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
Text(
|
Text(
|
||||||
title ?? 'بدون تیتر',
|
title ?? 'بدون تیتر',
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: titleStyle ?? AppFonts.yekan12.copyWith(color: const Color(0xFF3E3E3E)),
|
style:
|
||||||
|
titleStyle ??
|
||||||
|
AppFonts.yekan12.copyWith(color: const Color(0xFF3E3E3E)),
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
@@ -842,7 +929,9 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
child: Text(
|
child: Text(
|
||||||
value,
|
value,
|
||||||
textAlign: TextAlign.right,
|
textAlign: TextAlign.right,
|
||||||
style: valueStyle ?? AppFonts.yekan14.copyWith(color: AppColor.textColor),
|
style:
|
||||||
|
valueStyle ??
|
||||||
|
AppFonts.yekan14.copyWith(color: AppColor.textColor),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
: Center(child: CupertinoActivityIndicator()),
|
: Center(child: CupertinoActivityIndicator()),
|
||||||
@@ -850,7 +939,9 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
Text(
|
Text(
|
||||||
unit ?? 'کیلوگرم',
|
unit ?? 'کیلوگرم',
|
||||||
textAlign: TextAlign.center,
|
textAlign: TextAlign.center,
|
||||||
style: unitStyle ?? AppFonts.yekan10.copyWith(color: Color(0xFF717171)),
|
style:
|
||||||
|
unitStyle ??
|
||||||
|
AppFonts.yekan10.copyWith(color: Color(0xFF717171)),
|
||||||
),
|
),
|
||||||
SizedBox(height: 4.h),
|
SizedBox(height: 4.h),
|
||||||
],
|
],
|
||||||
@@ -902,19 +993,29 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
Row(
|
Row(
|
||||||
children: [
|
children: [
|
||||||
SizedBox(width: 5.w),
|
SizedBox(width: 5.w),
|
||||||
Text('تعهدات', textAlign: TextAlign.right, style: AppFonts.yekan16),
|
Text(
|
||||||
|
'تعهدات',
|
||||||
|
textAlign: TextAlign.right,
|
||||||
|
style: AppFonts.yekan16,
|
||||||
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|
||||||
commitmentsItemList(
|
commitmentsItemList(
|
||||||
title: 'تعهد دولتی توزیع داخل استان',
|
title: 'تعهد دولتی توزیع داخل استان',
|
||||||
value: data.value?.totalCommitmentSellingInProvinceGovernmentalWeight.separatedByComma,
|
value: data
|
||||||
|
.value
|
||||||
|
?.totalCommitmentSellingInProvinceGovernmentalWeight
|
||||||
|
.separatedByComma,
|
||||||
labelColor: const Color(0xFFB9E8DC),
|
labelColor: const Color(0xFFB9E8DC),
|
||||||
bgColor: const Color(0xFFF3F9F8),
|
bgColor: const Color(0xFFF3F9F8),
|
||||||
),
|
),
|
||||||
commitmentsItemList(
|
commitmentsItemList(
|
||||||
title: 'توزیع دولتی داخل استان',
|
title: 'توزیع دولتی داخل استان',
|
||||||
value: data.value?.totalSellingInProvinceGovernmentalWeight.separatedByComma,
|
value: data
|
||||||
|
.value
|
||||||
|
?.totalSellingInProvinceGovernmentalWeight
|
||||||
|
.separatedByComma,
|
||||||
labelColor: const Color(0xFFC3D4F3),
|
labelColor: const Color(0xFFC3D4F3),
|
||||||
bgColor: const Color(0xFFECF3FF),
|
bgColor: const Color(0xFFECF3FF),
|
||||||
),
|
),
|
||||||
@@ -929,19 +1030,26 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
),
|
),
|
||||||
commitmentsItemList(
|
commitmentsItemList(
|
||||||
title: 'تعهد آزاد توزیع داخل استان',
|
title: 'تعهد آزاد توزیع داخل استان',
|
||||||
value: data.value?.totalCommitmentSellingInProvinceFreeWeight.separatedByComma,
|
value: data
|
||||||
|
.value
|
||||||
|
?.totalCommitmentSellingInProvinceFreeWeight
|
||||||
|
.separatedByComma,
|
||||||
labelColor: const Color(0xFFC7DADA),
|
labelColor: const Color(0xFFC7DADA),
|
||||||
bgColor: const Color(0xFFE5F7F7),
|
bgColor: const Color(0xFFE5F7F7),
|
||||||
),
|
),
|
||||||
commitmentsItemList(
|
commitmentsItemList(
|
||||||
title: 'توزیع آزاد داخل استان',
|
title: 'توزیع آزاد داخل استان',
|
||||||
value: data.value?.totalSellingInProvinceFreeWeight.separatedByComma,
|
value:
|
||||||
|
data.value?.totalSellingInProvinceFreeWeight.separatedByComma,
|
||||||
labelColor: const Color(0xFFE0D6ED),
|
labelColor: const Color(0xFFE0D6ED),
|
||||||
bgColor: const Color(0xFFF5EDFF),
|
bgColor: const Color(0xFFF5EDFF),
|
||||||
),
|
),
|
||||||
commitmentsItemList(
|
commitmentsItemList(
|
||||||
title: 'باقیمانده تعهد آزاد توزیع داخل استان',
|
title: 'باقیمانده تعهد آزاد توزیع داخل استان',
|
||||||
value: data.value?.totalCommitmentSellingInProvinceFreeRemainWeight.separatedByComma,
|
value: data
|
||||||
|
.value
|
||||||
|
?.totalCommitmentSellingInProvinceFreeRemainWeight
|
||||||
|
.separatedByComma,
|
||||||
labelColor: const Color(0xFFEBC5CE),
|
labelColor: const Color(0xFFEBC5CE),
|
||||||
bgColor: const Color(0xFFFFF1F4),
|
bgColor: const Color(0xFFFFF1F4),
|
||||||
),
|
),
|
||||||
@@ -986,7 +1094,9 @@ class WarehouseAndDistributionHomePage extends GetView<WarehouseAndDistributionH
|
|||||||
: Text(
|
: Text(
|
||||||
value,
|
value,
|
||||||
textAlign: TextAlign.right,
|
textAlign: TextAlign.right,
|
||||||
style: AppFonts.yekan16.copyWith(color: AppColor.textColor),
|
style: AppFonts.yekan16.copyWith(
|
||||||
|
color: AppColor.textColor,
|
||||||
|
),
|
||||||
),
|
),
|
||||||
SizedBox(width: 8.w),
|
SizedBox(width: 8.w),
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import 'package:rasadyar_chicken/data/data_source/local/chicken_local.dart';
|
|||||||
import 'package:rasadyar_chicken/data/di/chicken_di.dart';
|
import 'package:rasadyar_chicken/data/di/chicken_di.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/kill_house_module/warehouse_and_distribution/response/kill_house_sales_info_dashboard.dart';
|
import 'package:rasadyar_chicken/data/models/kill_house_module/warehouse_and_distribution/response/kill_house_sales_info_dashboard.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart';
|
import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
|
import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart';
|
import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart';
|
import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart';
|
||||||
@@ -57,7 +56,7 @@ class WarehouseAndDistributionRootLogic extends GetxController {
|
|||||||
|
|
||||||
RxList<ErrorLocationType> errorLocationType = RxList();
|
RxList<ErrorLocationType> errorLocationType = RxList();
|
||||||
RxMap<int, dynamic> inventoryExpandedList = RxMap();
|
RxMap<int, dynamic> inventoryExpandedList = RxMap();
|
||||||
Rxn<InventoryModel> inventoryModel = Rxn<InventoryModel>();
|
Rxn<ProductModel> inventoryModel = Rxn<ProductModel>();
|
||||||
Rxn<KillHouseSalesInfoDashboard> killHouseSalesInfoDashboard =
|
Rxn<KillHouseSalesInfoDashboard> killHouseSalesInfoDashboard =
|
||||||
Rxn<KillHouseSalesInfoDashboard>();
|
Rxn<KillHouseSalesInfoDashboard>();
|
||||||
RxList<IranProvinceCityModel> provinces = <IranProvinceCityModel>[].obs;
|
RxList<IranProvinceCityModel> provinces = <IranProvinceCityModel>[].obs;
|
||||||
|
|||||||
@@ -565,7 +565,7 @@ class WarehouseAndDistributionRootPage
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget inventoryItem({required bool isExpanded, required int index, required InventoryModel model}) {
|
Widget inventoryItem({required bool isExpanded, required int index, required ProductModel model}) {
|
||||||
return Column(
|
return Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
spacing: 8,
|
spacing: 8,
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import 'package:flutter/cupertino.dart' hide LinearGradient;
|
import 'package:flutter/cupertino.dart' hide LinearGradient;
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
||||||
import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart';
|
import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart';
|
||||||
import 'package:rasadyar_chicken/presentation/widget/steward/widely_used/view.dart';
|
import 'package:rasadyar_chicken/presentation/widget/steward/widely_used/view.dart';
|
||||||
@@ -704,7 +703,7 @@ class HomePage extends GetView<HomeLogic> {
|
|||||||
Widget inventoryItem({
|
Widget inventoryItem({
|
||||||
required bool isExpanded,
|
required bool isExpanded,
|
||||||
required int index,
|
required int index,
|
||||||
required InventoryModel model,
|
required ProductModel model,
|
||||||
}) {
|
}) {
|
||||||
return Column(
|
return Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import 'package:flutter/widgets.dart';
|
|||||||
import 'package:rasadyar_chicken/data/data_source/local/chicken_local.dart';
|
import 'package:rasadyar_chicken/data/data_source/local/chicken_local.dart';
|
||||||
import 'package:rasadyar_chicken/data/di/chicken_di.dart';
|
import 'package:rasadyar_chicken/data/di/chicken_di.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart';
|
import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart';
|
|
||||||
import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
|
import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart';
|
import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart';
|
import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart';
|
||||||
@@ -53,7 +52,7 @@ class StewardRootLogic extends GetxController {
|
|||||||
|
|
||||||
RxList<ErrorLocationType> errorLocationType = RxList();
|
RxList<ErrorLocationType> errorLocationType = RxList();
|
||||||
RxMap<int, dynamic> inventoryExpandedList = RxMap();
|
RxMap<int, dynamic> inventoryExpandedList = RxMap();
|
||||||
Rxn<InventoryModel> inventoryModel = Rxn<InventoryModel>();
|
Rxn<ProductModel> inventoryModel = Rxn<ProductModel>();
|
||||||
RxList<IranProvinceCityModel> provinces = <IranProvinceCityModel>[].obs;
|
RxList<IranProvinceCityModel> provinces = <IranProvinceCityModel>[].obs;
|
||||||
|
|
||||||
// Cancel tokens for API calls
|
// Cancel tokens for API calls
|
||||||
@@ -123,7 +122,7 @@ class StewardRootLogic extends GetxController {
|
|||||||
_inventoryCancelToken?.cancel();
|
_inventoryCancelToken?.cancel();
|
||||||
_inventoryCancelToken = CancelToken();
|
_inventoryCancelToken = CancelToken();
|
||||||
|
|
||||||
await safeCall<List<InventoryModel>?>(
|
await safeCall<List<ProductModel>?>(
|
||||||
call: () async => await chickenRepository.getInventory(
|
call: () async => await chickenRepository.getInventory(
|
||||||
token: tokenService.accessToken.value!,
|
token: tokenService.accessToken.value!,
|
||||||
cancelToken: _inventoryCancelToken,
|
cancelToken: _inventoryCancelToken,
|
||||||
|
|||||||
@@ -561,7 +561,7 @@ class StewardRootPage extends GetView<StewardRootLogic> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget inventoryItem({required bool isExpanded, required int index, required InventoryModel model}) {
|
Widget inventoryItem({required bool isExpanded, required int index, required ProductModel model}) {
|
||||||
return Column(
|
return Column(
|
||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
spacing: 8,
|
spacing: 8,
|
||||||
|
|||||||
@@ -1,12 +1,10 @@
|
|||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart';
|
import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart';
|
||||||
import 'package:rasadyar_core/core.dart';
|
import 'package:rasadyar_core/core.dart';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class InventoryWidget extends StatelessWidget {
|
class InventoryWidget extends StatelessWidget {
|
||||||
final InventoryModel? inventoryModel;
|
final ProductModel? inventoryModel;
|
||||||
|
|
||||||
const InventoryWidget({super.key, required this.inventoryModel});
|
const InventoryWidget({super.key, required this.inventoryModel});
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import 'package:rasadyar_chicken/data/models/request/create_steward_free_bar/cre
|
|||||||
import 'package:rasadyar_chicken/data/models/response/allocated_made/allocated_made.dart';
|
import 'package:rasadyar_chicken/data/models/response/allocated_made/allocated_made.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart';
|
import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart';
|
import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart';
|
import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/segmentation_model/segmentation_model.dart';
|
import 'package:rasadyar_chicken/data/models/response/segmentation_model/segmentation_model.dart';
|
||||||
import 'package:rasadyar_chicken/data/models/response/steward_free_bar/steward_free_bar.dart';
|
import 'package:rasadyar_chicken/data/models/response/steward_free_bar/steward_free_bar.dart';
|
||||||
@@ -117,12 +117,12 @@ void main() {
|
|||||||
test('should complete inventory management workflow', () async {
|
test('should complete inventory management workflow', () async {
|
||||||
// Arrange
|
// Arrange
|
||||||
final expectedInventory = [
|
final expectedInventory = [
|
||||||
InventoryModel(
|
ProductModel(
|
||||||
key: 'inventory-1',
|
key: 'inventory-1',
|
||||||
name: 'Product 1',
|
name: 'Product 1',
|
||||||
totalCarcassesQuantity: 100,
|
totalCarcassesQuantity: 100,
|
||||||
),
|
),
|
||||||
InventoryModel(
|
ProductModel(
|
||||||
key: 'inventory-2',
|
key: 'inventory-2',
|
||||||
name: 'Product 2',
|
name: 'Product 2',
|
||||||
totalCarcassesQuantity: 200,
|
totalCarcassesQuantity: 200,
|
||||||
|
|||||||
Reference in New Issue
Block a user