Merge branch with resolved conflicts - restructured features and added new modules

This commit is contained in:
2025-12-17 10:26:39 +03:30
484 changed files with 55236 additions and 4255 deletions

View File

@@ -1,11 +1,12 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_price.dart';
import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart';
import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart';
import 'package:rasadyar_chicken/data/models/response/segmentation_model/segmentation_model.dart';
import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart';
import 'package:rasadyar_chicken/features/steward/root/logic.dart';
=
import 'package:rasadyar_chicken/features/common/data/model/response/broadcast_price/broadcast_price.dart';
import 'package:rasadyar_chicken/features/common/data/model/response/guild/guild_model.dart';
import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart';
import 'package:rasadyar_chicken/features/steward/data/model/response/segmentation_model/segmentation_model.dart';
import 'package:rasadyar_chicken/features/steward/data/model/response/steward_remain_weight/steward_remain_weight.dart';
import 'package:rasadyar_chicken/features/steward/presentation/pages/root/logic.dart';
import 'package:rasadyar_chicken/presentation/utils/utils.dart';
import 'package:rasadyar_core/core.dart';
@@ -48,7 +49,10 @@ class SegmentationLogic extends GetxController {
void onInit() {
super.onInit();
routesName = ['قطعه‌بندی'].toList();
once(rootLogic.rolesProductsModel, (callback) => selectedProduct.value = callback.first);
once(
rootLogic.rolesProductsModel,
(callback) => selectedProduct.value = callback.first,
);
getAllSegmentation();
getGuilds();
@@ -65,7 +69,8 @@ class SegmentationLogic extends GetxController {
}
void _updateGovernmentalProductionDateData() {
List<RemainWeightDay> dates = rootLogic.stewardRemainWeight.value?.governmental ?? [];
List<RemainWeightDay> dates =
rootLogic.stewardRemainWeight.value?.governmental ?? [];
governmentalProductionDateData = {
for (var element in dates)
element.day.toString().toJalali.formatCompactDate(): DayData(
@@ -90,7 +95,6 @@ class SegmentationLogic extends GetxController {
setUpListener();
}
void setSearchValue(String? value) {
searchedValue.value = value?.trim();
}
@@ -134,14 +138,16 @@ class SegmentationLogic extends GetxController {
hasWeight &&
productionDate.value != null &&
weight > 0 &&
(segmentType.value == 1 || (segmentType.value == 2 && selectedGuildModel.value != null));
(segmentType.value == 1 ||
(segmentType.value == 2 && selectedGuildModel.value != null));
}
Future<void> getAllSegmentation([bool isLoadingMore = false]) async {
if (isLoadingMore) {
isLoadingMoreAllocationsMade.value = true;
} else {
segmentationList.value = Resource<PaginationModel<SegmentationModel>>.loading();
segmentationList.value =
Resource<PaginationModel<SegmentationModel>>.loading();
}
if (searchedValue.value != null &&
@@ -152,7 +158,7 @@ class SegmentationLogic extends GetxController {
await safeCall(
showError: true,
call: () async => await rootLogic.chickenRepository.getSegmentation(
call: () async => await rootLogic.commonRepository.getSegmentation(
token: rootLogic.tokenService.accessToken.value!,
queryParameters: buildQueryParams(
pageSize: 20,
@@ -167,19 +173,21 @@ class SegmentationLogic extends GetxController {
onSuccess: (result) {
if ((result?.count ?? 0) == 0) {
segmentationList.value = Resource<PaginationModel<SegmentationModel>>.empty();
segmentationList.value =
Resource<PaginationModel<SegmentationModel>>.empty();
} else {
segmentationList.value = Resource<PaginationModel<SegmentationModel>>.success(
PaginationModel<SegmentationModel>(
count: result?.count ?? 0,
next: result?.next,
previous: result?.previous,
results: [
...(segmentationList.value.data?.results ?? []),
...(result?.results ?? []),
],
),
);
segmentationList.value =
Resource<PaginationModel<SegmentationModel>>.success(
PaginationModel<SegmentationModel>(
count: result?.count ?? 0,
next: result?.next,
previous: result?.previous,
results: [
...(segmentationList.value.data?.results ?? []),
...(result?.results ?? []),
],
),
);
isLoadingMoreAllocationsMade.value = false;
}
@@ -191,7 +199,7 @@ class SegmentationLogic extends GetxController {
await safeCall(
showError: true,
showSuccess: true,
call: () => rootLogic.chickenRepository.deleteSegmentation(
call: () => rootLogic.commonRepository.deleteSegmentation(
token: rootLogic.tokenService.accessToken.value!,
key: key,
),
@@ -202,12 +210,14 @@ class SegmentationLogic extends GetxController {
var res = true;
safeCall(
showError: true,
call: () async => await rootLogic.chickenRepository.editSegmentation(
call: () async => await rootLogic.commonRepository.editSegmentation(
token: rootLogic.tokenService.accessToken.value!,
model: SegmentationModel(
key: selectedSegment.value?.key,
weight: int.tryParse(weightController.text.clearComma) ?? 0,
productionDate: productionDate.value?.toDateTime().formattedDashedGregorian,
productionDate: productionDate.value
?.toDateTime()
.formattedDashedGregorian,
),
),
onSuccess: (result) {
@@ -232,14 +242,18 @@ class SegmentationLogic extends GetxController {
productionDate: productionDate.value?.toDateTime().formattedDashedGregorian,
);
if (segmentType.value == 2) {
segmentationModel = segmentationModel.copyWith(guildKey: selectedGuildModel.value?.key);
segmentationModel = segmentationModel.copyWith(
guildKey: selectedGuildModel.value?.key,
);
}
segmentationModel = segmentationModel.copyWith(
productionDate: productionDate.value?.toDateTime().formattedDashedGregorian,
productionDate: productionDate.value
?.toDateTime()
.formattedDashedGregorian,
);
await safeCall(
showError: true,
call: () async => await rootLogic.chickenRepository.createSegmentation(
call: () async => await rootLogic.commonRepository.createSegmentation(
token: rootLogic.tokenService.accessToken.value!,
model: segmentationModel,
),
@@ -262,9 +276,12 @@ class SegmentationLogic extends GetxController {
Future<void> getGuilds() async {
safeCall(
call: () async => await rootLogic.chickenRepository.getGuilds(
call: () async => await rootLogic.commonRepository.getGuilds(
token: rootLogic.tokenService.accessToken.value!,
queryParameters: buildQueryParams(queryParams: {'all': true}, role: 'Steward'),
queryParameters: buildQueryParams(
queryParams: {'all': true},
role: 'Steward',
),
),
onSuccess: (result) {
if (result != null) {
@@ -288,7 +305,7 @@ class SegmentationLogic extends GetxController {
Future<void> getBroadcastPrice() async {
safeCall(
call: () async => await rootLogic.chickenRepository.getBroadcastPrice(
call: () async => await rootLogic.commonRepository.getBroadcastPrice(
token: rootLogic.tokenService.accessToken.value!,
),
onSuccess: (result) {

View File

@@ -1,6 +1,7 @@
import 'package:flutter/material.dart';
import 'package:rasadyar_chicken/data/models/response/segmentation_model/segmentation_model.dart';
import 'package:rasadyar_chicken/features/steward/segmentation/widgets/cu_bottom_sheet.dart';
=
import 'package:rasadyar_chicken/features/steward/data/model/response/segmentation_model/segmentation_model.dart';
import 'package:rasadyar_chicken/features/steward/presentation/pages/segmentation/widgets/cu_bottom_sheet.dart';
import 'package:rasadyar_chicken/presentation/widget/base_page/view.dart';
import 'package:rasadyar_chicken/presentation/widget/filter_bottom_sheet.dart';
import 'package:rasadyar_core/core.dart';

View File

@@ -1,8 +1,9 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart';
import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart';
import 'package:rasadyar_chicken/features/steward/segmentation/logic.dart';
=
import 'package:rasadyar_chicken/features/common/data/model/response/guild/guild_model.dart';
import 'package:rasadyar_chicken/features/common/data/model/response/roles_products/roles_products.dart';
import 'package:rasadyar_chicken/features/steward/presentation/pages/segmentation/logic.dart';
import 'package:rasadyar_core/core.dart';
Widget addOrEditBottomSheet(SegmentationLogic controller, {bool isOnEdit = false}) {